From 3e199467f4c7e901b9c8b470231961f241be6d57 Mon Sep 17 00:00:00 2001 From: Cristiano Calcagno Date: Fri, 17 Jul 2015 09:11:33 -0200 Subject: [PATCH] Complete copyright messages. --- compile-fcp.sh | 8 + .../facebook/infer/annotation/Assertions.java | 9 +- .../infer/annotation/Initializer.java | 9 +- .../facebook/infer/annotation/Mutable.java | 9 +- .../facebook/infer/annotation/Present.java | 9 +- .../com/facebook/infer/annotation/Strict.java | 9 +- .../SuppressFieldNotInitialized.java | 9 +- .../annotation/SuppressFieldNotNullable.java | 9 +- .../annotation/SuppressNullFieldAccess.java | 9 +- .../annotation/SuppressNullMethodCall.java | 9 +- .../SuppressParameterNotNullable.java | 9 +- .../SuppressReturnOverAnnotated.java | 9 +- .../com/facebook/infer/annotation/Verify.java | 9 +- infer/bin/BuckAnalyze | 7 +- infer/bin/inferJ | 7 +- infer/bin/inferTest | 6 +- infer/bin/inferTraceBugs | 7 +- infer/bin/inferlib.py | 7 +- infer/bin/jwlib.py | 8 +- infer/bin/utils.py | 7 +- infer/lib/capture/analyze.py | 7 + infer/lib/capture/ant.py | 7 + infer/lib/capture/buck.py | 7 + infer/lib/capture/gradle.py | 7 + infer/lib/capture/javac.py | 7 + infer/lib/capture/make.py | 7 + infer/lib/capture/mvn.py | 7 +- infer/lib/capture/util.py | 6 +- infer/lib/capture/xcodebuild.py | 7 + infer/models/c/src/glib.c | 10 +- infer/models/c/src/infer_builtins.c | 10 +- infer/models/c/src/infer_builtins.h | 10 +- infer/models/c/src/libc_basic.c | 10 +- infer/models/c/src/math.c | 10 +- infer/models/c/src/wchar.c | 10 +- infer/models/c/src/wctype.c | 10 +- infer/models/c/src/xlib.c | 10 +- infer/models/cpp/src/shared_ptr.cpp | 10 +- .../models/java/src/android/app/Activity.java | 6 +- .../java/src/android/app/DownloadManager.java | 6 +- .../content/ContentProviderClient.java | 6 +- .../src/android/content/ContentResolver.java | 6 +- .../java/src/android/content/Context.java | 6 +- .../src/android/content/IContentProvider.java | 6 +- .../src/android/content/IContentService.java | 6 +- .../src/android/content/res/Resources.java | 6 +- .../src/android/content/res/TypedArray.java | 6 +- .../src/android/database/AbstractCursor.java | 6 +- .../android/database/CrossProcessCursor.java | 6 +- .../database/CrossProcessCursorWrapper.java | 6 +- .../java/src/android/database/Cursor.java | 8 +- .../src/android/database/CursorWrapper.java | 6 +- .../database/sqlite/SQLiteConnectionPool.java | 6 +- .../android/database/sqlite/SQLiteCursor.java | 6 +- .../database/sqlite/SQLiteDatabase.java | 6 +- .../sqlite/SQLiteDatabaseConfiguration.java | 6 +- .../database/sqlite/SQLiteQueryBuilder.java | 6 +- .../java/src/android/provider/MediaStore.java | 6 +- .../com/facebook/infer/models/InferArray.java | 8 +- .../facebook/infer/models/InferBuiltins.java | 10 +- .../infer/models/InferCloseables.java | 8 +- .../facebook/infer/models/InferUndefined.java | 8 +- .../com/facebook/infer/models/InferUtils.java | 9 +- .../fasterxml/jackson/core/JsonFactory.java | 6 +- .../fasterxml/jackson/core/JsonParser.java | 6 +- .../core/json/UTF8StreamJsonParser.java | 9 + .../com/google/common/base/Preconditions.java | 6 +- .../google/common/collect/ImmutableList.java | 6 +- .../com/google/common/collect/Iterators.java | 6 +- .../src/com/google/common/io/Closeables.java | 6 +- .../okhttp/internal/StrictLineReader.java | 6 +- .../com/squareup/okhttp/internal/Util.java | 6 +- .../java/src/dalvik/system/CloseGuard.java | 6 +- .../java/src/java/io/BufferedInputStream.java | 6 +- .../src/java/io/BufferedOutputStream.java | 6 +- .../java/src/java/io/BufferedReader.java | 6 +- .../java/src/java/io/BufferedWriter.java | 6 +- .../src/java/io/ByteArrayInputStream.java | 9 +- .../src/java/io/ByteArrayOutputStream.java | 9 +- .../java/src/java/io/DataInputStream.java | 6 +- .../java/src/java/io/DataOutputStream.java | 6 +- .../java/src/java/io/FileInputStream.java | 6 +- .../java/src/java/io/FileOutputStream.java | 6 +- infer/models/java/src/java/io/FileReader.java | 6 +- infer/models/java/src/java/io/FileWriter.java | 6 +- .../java/src/java/io/FilterInputStream.java | 6 +- .../java/src/java/io/FilterOutputStream.java | 6 +- .../models/java/src/java/io/FilterReader.java | 6 +- .../models/java/src/java/io/InputStream.java | 6 +- .../java/src/java/io/InputStreamReader.java | 6 +- .../java/src/java/io/ObjectInputStream.java | 6 +- .../java/src/java/io/ObjectOutputStream.java | 6 +- .../models/java/src/java/io/OutputStream.java | 6 +- .../java/src/java/io/OutputStreamWriter.java | 6 +- .../java/src/java/io/PipedInputStream.java | 6 +- .../java/src/java/io/PipedOutputStream.java | 6 +- .../models/java/src/java/io/PipedReader.java | 6 +- .../models/java/src/java/io/PipedWriter.java | 6 +- .../models/java/src/java/io/PrintStream.java | 6 +- .../models/java/src/java/io/PrintWriter.java | 6 +- .../java/src/java/io/PushbackInputStream.java | 6 +- .../java/src/java/io/PushbackReader.java | 6 +- .../java/src/java/io/RandomAccessFile.java | 6 +- infer/models/java/src/java/io/Reader.java | 6 +- .../models/java/src/java/io/StringReader.java | 9 + infer/models/java/src/java/io/Writer.java | 6 +- infer/models/java/src/java/lang/Class.java | 6 +- infer/models/java/src/java/lang/Integer.java | 9 + .../src/java/lang/NullPointerException.java | 6 +- infer/models/java/src/java/lang/Object.java | 6 +- infer/models/java/src/java/lang/Process.java | 6 +- .../java/src/java/lang/ProcessManager.java | 6 +- infer/models/java/src/java/lang/Runtime.java | 6 +- infer/models/java/src/java/lang/String.java | 6 +- infer/models/java/src/java/lang/System.java | 6 +- infer/models/java/src/java/lang/Thread.java | 6 +- .../java/src/java/lang/reflect/Array.java | 6 +- .../java/src/java/net/HttpURLConnection.java | 6 +- .../java/src/java/net/JarURLConnection.java | 6 +- .../java/src/java/net/PlainSocketImpl.java | 6 +- .../java/src/java/net/ServerSocket.java | 6 +- infer/models/java/src/java/net/Socket.java | 6 +- infer/models/java/src/java/net/URL.java | 6 +- .../java/src/java/net/URLConnection.java | 6 +- .../java/src/java/nio/FileChannelImpl.java | 6 +- .../src/java/nio/channels/FileChannel.java | 6 +- .../spi/AbstractInterruptibleChannel.java | 6 +- .../src/java/security/DigestInputStream.java | 6 +- .../src/java/security/DigestOutputStream.java | 6 +- infer/models/java/src/java/util/HashMap.java | 6 +- .../models/java/src/java/util/Properties.java | 6 +- infer/models/java/src/java/util/Scanner.java | 6 +- infer/models/java/src/java/util/Vector.java | 6 +- .../java/src/java/util/jar/JarFile.java | 6 +- .../src/java/util/jar/JarInputStream.java | 6 +- .../src/java/util/jar/JarOutputStream.java | 6 +- .../src/java/util/zip/CheckedInputStream.java | 6 +- .../java/util/zip/CheckedOutputStream.java | 6 +- .../java/util/zip/DeflaterInputStream.java | 6 +- .../java/util/zip/DeflaterOutputStream.java | 6 +- .../src/java/util/zip/GZIPInputStream.java | 6 +- .../src/java/util/zip/GZIPOutputStream.java | 6 +- .../java/util/zip/InflaterInputStream.java | 6 +- .../java/util/zip/InflaterOutputStream.java | 6 +- .../java/src/java/util/zip/ZipFile.java | 6 +- .../src/java/util/zip/ZipInputStream.java | 6 +- .../src/java/util/zip/ZipOutputStream.java | 6 +- .../src/javax/crypto/CipherInputStream.java | 6 +- .../src/javax/crypto/CipherOutputStream.java | 6 +- .../src/javax/net/ssl/HttpsURLConnection.java | 6 +- .../java/src/junit/framework/Assert.java | 6 +- .../models/objc/src/CoreFoundation/CFArray.c | 9 + .../objc/src/CoreFoundation/CFBinaryHeap.c | 9 + .../objc/src/CoreFoundation/CFBitVector.c | 9 + infer/models/objc/src/CoreFoundation/CFDate.c | 9 + .../objc/src/CoreFoundation/CFDictionary.c | 10 + .../models/objc/src/CoreFoundation/CFError.c | 9 + .../objc/src/CoreFoundation/CFHTTPMessage.c | 9 + .../models/objc/src/CoreFoundation/CFLocale.c | 9 + .../objc/src/CoreFoundation/CFMutableArray.c | 9 + .../CFMutableAttributedString.c | 9 + .../src/CoreFoundation/CFMutableDictionary.c | 10 + .../objc/src/CoreFoundation/CFMutableSet.c | 10 + .../models/objc/src/CoreFoundation/CFNumber.c | 9 + .../objc/src/CoreFoundation/CFPreferences.c | 9 + .../objc/src/CoreFoundation/CFRunLoop.c | 9 + .../src/CoreFoundation/CFRunLoopObserver.c | 9 + .../models/objc/src/CoreFoundation/CFSocket.c | 9 + .../models/objc/src/CoreFoundation/CFString.c | 9 + .../src/CoreFoundation/CFStringTokenizer.c | 9 + infer/models/objc/src/CoreFoundation/CFType.c | 9 + infer/models/objc/src/CoreFoundation/CFUUID.c | 9 + infer/models/objc/src/CoreFoundation/CTFont.c | 9 + .../objc/src/CoreFoundation/CTFramesetter.c | 9 + .../src/CoreFoundation/CTParagraphStyle.c | 9 + .../CoreFoundation/SCNetworkReachability.c | 9 + .../objc/src/CoreFoundation/SecCertificate.c | 9 + infer/models/objc/src/CoreFoundation/SecKey.c | 9 + infer/models/objc/src/CoreGraphics/CGColor.c | 9 + .../objc/src/CoreGraphics/CGColorSpace.c | 9 + .../models/objc/src/CoreGraphics/CGContext.c | 9 + .../objc/src/CoreGraphics/CGDataConsumer.c | 9 + .../objc/src/CoreGraphics/CGDataProvider.c | 9 + infer/models/objc/src/CoreGraphics/CGFont.c | 9 + .../models/objc/src/CoreGraphics/CGFunction.c | 9 + .../models/objc/src/CoreGraphics/CGGradient.c | 9 + infer/models/objc/src/CoreGraphics/CGImage.c | 9 + .../src/CoreGraphics/CGImageDestination.c | 9 + .../objc/src/CoreGraphics/CGImageSource.c | 9 + infer/models/objc/src/CoreGraphics/CGLayer.c | 9 + .../src/CoreGraphics/CGPDFContentStream.c | 9 + .../objc/src/CoreGraphics/CGPDFDocument.c | 9 + .../src/CoreGraphics/CGPDFOperatorTable.c | 9 + .../models/objc/src/CoreGraphics/CGPDFPage.c | 9 + .../objc/src/CoreGraphics/CGPDFScanner.c | 9 + infer/models/objc/src/CoreGraphics/CGPath.c | 9 + .../models/objc/src/CoreGraphics/CGPattern.c | 9 + .../models/objc/src/CoreGraphics/CGShading.c | 9 + infer/models/objc/src/NSArray.h | 9 + infer/models/objc/src/NSArray.m | 9 + infer/models/objc/src/NSAutoreleasePool.m | 8 +- infer/models/objc/src/NSData.m | 9 + infer/models/objc/src/NSDictionary.h | 9 + infer/models/objc/src/NSDictionary.m | 9 + infer/models/objc/src/NSFileHandle.m | 9 + infer/models/objc/src/NSMutableArray.h | 9 + infer/models/objc/src/NSMutableArray.m | 9 + infer/models/objc/src/NSMutableDictionary.h | 9 + infer/models/objc/src/NSMutableDictionary.m | 9 + infer/models/objc/src/NSNumber.h | 9 + infer/models/objc/src/NSNumber.m | 9 + infer/models/objc/src/NSObject.m | 8 +- infer/models/objc/src/NSString.h | 9 + infer/models/objc/src/NSString.m | 9 + infer/src/Makefile | 8 +- infer/src/backend/CRC.ml | 9 +- infer/src/backend/CRC.mli | 8 +- infer/src/backend/DB.ml | 10 + infer/src/backend/DB.mli | 10 + infer/src/backend/OcamlMakefile | 535 ------------------ infer/src/backend/abs.ml | 8 +- infer/src/backend/abs.mli | 8 +- infer/src/backend/absarray.ml | 8 +- infer/src/backend/absarray.mli | 10 +- infer/src/backend/autounit.ml | 8 +- infer/src/backend/autounit.mli | 10 +- infer/src/backend/buckets.ml | 8 +- infer/src/backend/buckets.mli | 8 +- infer/src/backend/callbacks.ml | 7 +- infer/src/backend/callbacks.mli | 7 +- infer/src/backend/cfg.ml | 8 +- infer/src/backend/cfg.mli | 8 +- infer/src/backend/cg.ml | 8 +- infer/src/backend/cg.mli | 8 +- infer/src/backend/config.ml | 8 +- infer/src/backend/dom.ml | 8 +- infer/src/backend/dom.mli | 8 +- infer/src/backend/dotty.ml | 8 +- infer/src/backend/dotty.mli | 8 +- infer/src/backend/errdesc.ml | 8 +- infer/src/backend/errdesc.mli | 8 +- infer/src/backend/errlog.ml | 6 +- infer/src/backend/errlog.mli | 6 +- infer/src/backend/exceptions.ml | 8 +- infer/src/backend/exceptions.mli | 8 +- infer/src/backend/exe_env.ml | 8 +- infer/src/backend/exe_env.mli | 8 +- infer/src/backend/fork.ml | 8 +- infer/src/backend/fork.mli | 8 +- infer/src/backend/ident.ml | 8 +- infer/src/backend/ident.mli | 8 +- infer/src/backend/inferanalyze.ml | 9 +- infer/src/backend/inferconfig.ml | 6 +- infer/src/backend/inferconfig.mli | 6 +- infer/src/backend/interproc.ml | 9 +- infer/src/backend/interproc.mli | 8 +- infer/src/backend/io_infer.ml | 8 +- infer/src/backend/io_infer.mli | 8 +- infer/src/backend/latex.ml | 8 +- infer/src/backend/latex.mli | 8 +- infer/src/backend/localise.ml | 8 +- infer/src/backend/localise.mli | 8 +- infer/src/backend/logging.ml | 8 +- infer/src/backend/logging.mli | 8 +- infer/src/backend/mangled.ml | 8 +- infer/src/backend/mangled.mli | 8 +- infer/src/backend/match.ml | 8 +- infer/src/backend/match.mli | 8 +- infer/src/backend/mleak_buckets.ml | 8 +- infer/src/backend/mleak_buckets.mli | 6 +- infer/src/backend/objc_models.ml | 6 +- infer/src/backend/objc_models.mli | 6 +- infer/src/backend/paths.ml | 8 +- infer/src/backend/paths.mli | 8 +- infer/src/backend/preanal.ml | 8 +- infer/src/backend/preanal.mli | 8 +- infer/src/backend/printer.ml | 8 +- infer/src/backend/printer.mli | 8 +- infer/src/backend/procname.ml | 8 +- infer/src/backend/procname.mli | 8 +- infer/src/backend/prop.ml | 8 +- infer/src/backend/prop.mli | 8 +- infer/src/backend/propgraph.ml | 8 +- infer/src/backend/propgraph.mli | 8 +- infer/src/backend/propset.ml | 8 +- infer/src/backend/propset.mli | 8 +- infer/src/backend/prover.ml | 8 +- infer/src/backend/prover.mli | 8 +- infer/src/backend/rearrange.ml | 8 +- infer/src/backend/rearrange.mli | 8 +- infer/src/backend/reporting.ml | 6 +- infer/src/backend/reporting.mli | 6 +- infer/src/backend/serialization.ml | 6 +- infer/src/backend/serialization.mli | 8 +- infer/src/backend/sil.ml | 8 +- infer/src/backend/sil.mli | 4 +- infer/src/backend/specs.ml | 8 +- infer/src/backend/specs.mli | 8 +- infer/src/backend/state.ml | 8 +- infer/src/backend/state.mli | 8 +- infer/src/backend/symExec.ml | 6 +- infer/src/backend/symExec.mli | 8 +- infer/src/backend/tabulation.ml | 8 +- infer/src/backend/tabulation.mli | 8 +- infer/src/backend/type_prop.ml | 4 +- infer/src/backend/type_prop.mli | 11 +- infer/src/backend/utils.ml | 9 +- infer/src/backend/utils.mli | 8 +- infer/src/backend/version.ml.in | 10 +- infer/src/checkers/annotations.ml | 7 +- infer/src/checkers/annotations.mli | 7 +- infer/src/checkers/callbackChecker.ml | 7 +- infer/src/checkers/callbackChecker.mli | 7 +- infer/src/checkers/checkDeadCode.ml | 7 +- infer/src/checkers/checkDeadCode.mli | 7 +- infer/src/checkers/checkers.ml | 7 +- infer/src/checkers/checkers.mli | 7 +- infer/src/checkers/codeQuery.ml | 7 +- infer/src/checkers/codeQuery.mli | 9 +- infer/src/checkers/codeQueryAst.ml | 9 +- infer/src/checkers/codequeryLexer.mll | 6 +- infer/src/checkers/codequeryParser.mly | 7 +- infer/src/checkers/constantPropagation.ml | 7 +- infer/src/checkers/constantPropagation.mli | 7 +- infer/src/checkers/dataflow.ml | 7 +- infer/src/checkers/dataflow.mli | 7 +- infer/src/checkers/eradicate.ml | 7 +- infer/src/checkers/eradicate.mli | 7 +- infer/src/checkers/eradicateChecks.ml | 7 +- infer/src/checkers/idenv.ml | 7 +- infer/src/checkers/idenv.mli | 7 +- infer/src/checkers/immutableChecker.ml | 7 +- infer/src/checkers/immutableChecker.mli | 7 +- infer/src/checkers/models.ml | 7 +- infer/src/checkers/patternMatch.ml | 7 +- infer/src/checkers/patternMatch.mli | 7 +- infer/src/checkers/printfArgs.ml | 7 +- infer/src/checkers/printfArgs.mli | 7 +- infer/src/checkers/registerCheckers.ml | 7 +- infer/src/checkers/repeatedCallsChecker.ml | 7 +- infer/src/checkers/repeatedCallsChecker.mli | 7 +- infer/src/checkers/sqlChecker.ml | 7 +- infer/src/checkers/sqlChecker.mli | 7 +- infer/src/checkers/sql_examples/Test.java | 9 + infer/src/checkers/typeAnnotation.ml | 7 +- infer/src/checkers/typeAnnotation.mli | 7 +- infer/src/checkers/typeCheck.ml | 7 +- infer/src/checkers/typeCheck.mli | 7 +- infer/src/checkers/typeErr.ml | 7 +- infer/src/checkers/typeErr.mli | 7 +- infer/src/checkers/typeOrigin.ml | 7 +- infer/src/checkers/typeOrigin.mli | 7 +- infer/src/checkers/typeState.ml | 7 +- infer/src/checkers/typeState.mli | 7 +- infer/src/clang/ast_expressions.ml | 6 +- infer/src/clang/ast_expressions.mli | 6 +- infer/src/clang/ast_lexer.mll | 6 +- infer/src/clang/cArithmetic_trans.ml | 6 +- infer/src/clang/cArithmetic_trans.mli | 6 +- infer/src/clang/cAstProcessor.ml | 6 +- infer/src/clang/cAstProcessor.mli | 6 +- infer/src/clang/cContext.ml | 6 +- infer/src/clang/cContext.mli | 6 +- infer/src/clang/cEnum_decl.ml | 6 +- infer/src/clang/cEnum_decl.mli | 6 +- infer/src/clang/cField_decl.ml | 6 +- infer/src/clang/cField_decl.mli | 8 +- infer/src/clang/cFrontend.ml | 6 +- infer/src/clang/cFrontend.mli | 8 +- infer/src/clang/cFrontend_config.ml | 6 +- infer/src/clang/cFrontend_config.mli | 6 +- infer/src/clang/cFrontend_utils.ml | 6 +- infer/src/clang/cFrontend_utils.mli | 6 +- infer/src/clang/cGen_trans.ml | 8 +- infer/src/clang/cGlobal_vars.ml | 6 +- infer/src/clang/cGlobal_vars.mli | 6 +- infer/src/clang/cLocation.ml | 6 +- infer/src/clang/cLocation.mli | 6 +- infer/src/clang/cMain.ml | 6 +- infer/src/clang/cMain.mli | 6 +- infer/src/clang/cMethod_decl.ml | 6 +- infer/src/clang/cMethod_decl.mli | 6 +- infer/src/clang/cMethod_signature.ml | 6 +- infer/src/clang/cMethod_signature.mli | 6 +- infer/src/clang/cMethod_trans.ml | 6 +- infer/src/clang/cMethod_trans.mli | 6 +- infer/src/clang/cModule_type.ml | 6 +- infer/src/clang/cTrans.ml | 6 +- infer/src/clang/cTrans.mli | 6 +- infer/src/clang/cTrans_models.ml | 6 +- infer/src/clang/cTrans_models.mli | 6 +- infer/src/clang/cTrans_utils.ml | 6 +- infer/src/clang/cTrans_utils.mli | 6 +- infer/src/clang/cTypes.ml | 6 +- infer/src/clang/cTypes.mli | 6 +- infer/src/clang/cTypes_decl.ml | 6 +- infer/src/clang/cTypes_decl.mli | 6 +- infer/src/clang/cTypes_parser.mly | 6 +- infer/src/clang/cVar_decl.ml | 6 +- infer/src/clang/cVar_decl.mli | 6 +- infer/src/clang/objcCategory_decl.ml | 6 +- infer/src/clang/objcCategory_decl.mli | 6 +- infer/src/clang/objcInterface_decl.ml | 6 +- infer/src/clang/objcInterface_decl.mli | 6 +- infer/src/clang/objcProperty_decl.ml | 6 +- infer/src/clang/objcProperty_decl.mli | 6 +- infer/src/clang/objcProtocol_decl.ml | 6 +- infer/src/clang/objcProtocol_decl.mli | 6 +- infer/src/clang/plugin/CMakeLists.txt | 7 +- infer/src/clang/plugin/InferPlugin.cpp | 7 +- infer/src/clang/plugin/test/Makefile | 7 +- infer/src/clang/plugin/test/test.cpp | 7 +- infer/src/harness/androidFramework.ml | 7 +- infer/src/harness/androidFramework.mli | 7 +- infer/src/harness/harness.ml | 7 +- infer/src/harness/harness.mli | 7 +- infer/src/harness/inhabit.ml | 7 +- infer/src/harness/inhabit.mli | 7 +- infer/src/harness/stacktrace.ml | 7 +- infer/src/harness/stacktrace.mli | 7 +- infer/src/java/jAnnotation.ml | 8 +- infer/src/java/jAnnotation.mli | 8 +- infer/src/java/jClasspath.ml | 8 +- infer/src/java/jClasspath.mli | 10 + infer/src/java/jConfig.ml | 8 +- infer/src/java/jContext.ml | 10 + infer/src/java/jContext.mli | 10 + infer/src/java/jFrontend.ml | 8 +- infer/src/java/jFrontend.mli | 8 +- infer/src/java/jMain.ml | 8 +- infer/src/java/jTrans.ml | 8 +- infer/src/java/jTrans.mli | 8 +- infer/src/java/jTransExn.ml | 8 +- infer/src/java/jTransExn.mli | 10 + infer/src/java/jTransStaticField.ml | 8 +- infer/src/java/jTransStaticField.mli | 9 + infer/src/java/jTransType.ml | 10 + infer/src/java/jTransType.mli | 10 + infer/src/java/jUtils.ml | 8 +- infer/src/java/jUtils.mli | 8 +- infer/src/java/jVerbose.ml | 10 + infer/src/java/jVerboseParser.mly | 10 + infer/src/llvm/ast.ml | 8 +- infer/src/llvm/lexer.mll | 8 +- infer/src/llvm/main.ml | 8 +- infer/src/llvm/parser.mly | 8 +- infer/src/llvm/pretty.ml | 8 +- infer/src/opensource/facebook.ml | 6 +- .../c/errors/arithmetic/array_out_of_bounds.c | 8 +- .../c/errors/arithmetic/divide_by_zero.c | 8 +- .../c/errors/assertions/assertion_failure.c | 6 +- .../c/errors/initialization/initlistexpr.c | 8 +- .../codetoanalyze/c/errors/lists/lists.c | 8 +- .../c/errors/local_vars/local_vars.c | 6 +- .../c/errors/memory_leaks/test.c | 8 +- .../c/errors/null_dereference/angelism.c | 8 +- .../c/errors/null_dereference/getc.c | 9 + .../null_pointer_dereference.c | 8 +- .../c/errors/resource_leaks/leak.c | 8 +- .../frontend/arithmetic/compound_assignment.c | 8 +- .../arithmetic/compound_assignment.dot | 28 +- .../c/frontend/arithmetic/int_const.c | 8 +- .../c/frontend/arithmetic/int_const.dot | 10 +- .../c/frontend/arithmetic/plus_expr.c | 8 +- .../c/frontend/arithmetic/plus_expr.dot | 8 +- .../c/frontend/arithmetic/unary.c | 8 +- .../c/frontend/arithmetic/unary.dot | 28 +- .../c/frontend/booleans/bool_example.c | 8 +- .../c/frontend/booleans/bool_example.dot | 2 +- .../c/frontend/booleans/condition_as_param.c | 8 +- .../frontend/booleans/condition_as_param.dot | 8 +- .../c/frontend/c_prototype/prototype.c | 8 +- .../c/frontend/c_prototype/prototype.dot | 10 +- .../codetoanalyze/c/frontend/comma/comma.c | 8 +- .../codetoanalyze/c/frontend/comma/comma.dot | 32 +- .../conditional_operator/array_access.c | 8 +- .../conditional_operator/array_access.dot | 26 +- .../conditional_operator/assert_example.c | 8 +- .../conditional_operator/binary_operator.c | 8 +- .../conditional_operator/binary_operator.dot | 78 +-- .../c/frontend/conditional_operator/cond2.c | 8 +- .../c/frontend/conditional_operator/cond2.dot | 96 ++-- .../conditional_operator.c | 8 +- .../conditional_operator.dot | 82 +-- .../conditional_operator/function_call.c | 8 +- .../conditional_operator/function_call.dot | 104 ++-- .../conditional_operator/if_short_circuit.c | 8 +- .../conditional_operator/if_short_circuit.dot | 152 ++--- .../conditional_operator/int_negation.c | 8 +- .../conditional_operator/int_negation.dot | 52 +- .../conditional_operator/member_access.c | 8 +- .../conditional_operator/member_access.dot | 36 +- .../conditional_operator/preincrement.c | 8 +- .../conditional_operator/preincrement.dot | 42 +- .../conditional_operator/unary_operator.c | 8 +- .../conditional_operator/unary_operator.dot | 32 +- .../c/frontend/enumeration/enum.c | 8 +- .../c/frontend/enumeration/enum.dot | 14 +- .../c/frontend/gotostmt/goto_ex.c | 8 +- .../c/frontend/gotostmt/goto_ex.dot | 370 ++++++------ .../initialization/array_initlistexpr.c | 8 +- .../initialization/array_initlistexpr.dot | 4 +- .../initialization/struct_initlistexpr.c | 8 +- .../initialization/struct_initlistexpr.dot | 20 +- .../codetoanalyze/c/frontend/loops/do_while.c | 8 +- .../c/frontend/loops/do_while.dot | 16 +- .../loops/do_while_condition_side_effects.c | 8 +- .../loops/do_while_condition_side_effects.dot | 16 +- .../c/frontend/loops/do_while_nested.c | 8 +- .../c/frontend/loops/do_while_nested.dot | 24 +- .../loops/for_condition_side_effects.c | 8 +- .../loops/for_condition_side_effects.dot | 20 +- .../c/frontend/loops/for_nested.c | 8 +- .../c/frontend/loops/for_nested.dot | 28 +- .../c/frontend/loops/for_no_condition.c | 8 +- .../c/frontend/loops/for_no_condition.dot | 16 +- .../c/frontend/loops/for_no_condition_incr.c | 8 +- .../frontend/loops/for_no_condition_incr.dot | 14 +- .../loops/for_no_condition_incr_body.c | 8 +- .../loops/for_no_condition_incr_body.dot | 12 +- .../c/frontend/loops/for_only_body.c | 8 +- .../c/frontend/loops/for_only_body.dot | 12 +- .../c/frontend/loops/for_simple.c | 8 +- .../c/frontend/loops/for_simple.dot | 18 +- .../c/frontend/loops/for_while_nested.c | 8 +- .../c/frontend/loops/for_while_nested.dot | 24 +- .../codetoanalyze/c/frontend/loops/while.c | 8 +- .../codetoanalyze/c/frontend/loops/while.dot | 14 +- .../loops/while_condition_side_effects.c | 8 +- .../loops/while_condition_side_effects.dot | 14 +- .../c/frontend/loops/while_nested.c | 8 +- .../c/frontend/loops/while_nested.dot | 24 +- .../c/frontend/loops/while_no_body.c | 8 +- .../c/frontend/loops/while_no_body.dot | 8 +- .../loops/while_with_continue_and_break.c | 8 +- .../loops/while_with_continue_and_break.dot | 28 +- .../nestedoperators/assign_in_condition.c | 8 +- .../nestedoperators/assign_in_condition.dot | 12 +- .../c/frontend/nestedoperators/gnuexpr.c | 8 +- .../c/frontend/nestedoperators/gnuexpr.dot | 8 +- .../nestedoperators/nestedassignment.c | 8 +- .../nestedoperators/nestedassignment.dot | 16 +- .../c/frontend/nestedoperators/union.c | 8 +- .../c/frontend/nestedoperators/union.dot | 12 +- .../c/frontend/switchstmt/switch.c | 8 +- .../c/frontend/switchstmt/switch.dot | 356 ++++++------ .../cpp/frontend/literals/nullptr.cpp | 9 + .../cpp/frontend/literals/nullptr.dot | 4 +- .../cpp/frontend/namespace/namespace.cpp | 8 +- .../cpp/frontend/namespace/namespace.dot | 8 +- .../cpp/frontend/types/casts.cpp | 9 + .../cpp/frontend/types/casts.dot | 4 +- .../cpp/frontend/types/functions.cpp | 9 + .../cpp/frontend/types/functions.dot | 20 +- .../java/checkers/ImmutableCast.java | 6 +- .../java/checkers/PrintfArgsChecker.java | 6 +- .../ActivityFieldNotInitialized.java | 9 + .../java/eradicate/FieldNotInitialized.java | 6 +- .../java/eradicate/FieldNotNullable.java | 6 +- .../InconsistentSubclassAnnotation.java | 9 + .../java/eradicate/LibraryCalls.java | 7 +- .../java/eradicate/NullFieldAccess.java | 6 +- .../java/eradicate/NullMethodCall.java | 6 +- .../java/eradicate/ParameterNotNullable.java | 6 +- .../java/eradicate/ReturnNotNullable.java | 6 +- .../SuppressedFieldNotInitializedExample.java | 7 +- .../codetoanalyze/java/errors/CursorNPEs.java | 6 +- .../java/harness/BasicHarnessActivity.java | 9 + .../java/harness/CallbackActivity.java | 9 + .../java/harness/FindViewByIdActivity.java | 9 + .../codetoanalyze/java/harness/MyView.java | 9 + .../java/harness/SubclassActivity.java | 9 + .../java/harness/SuperclassActivity.java | 9 + .../java/harness/TrickyParamsActivity.java | 9 + .../java/infer/AnalysisStops.java | 9 + .../java/infer/ArrayOutOfBounds.java | 6 +- .../java/infer/AutoGenerated.java | 8 +- .../codetoanalyze/java/infer/Builtins.java | 8 +- .../java/infer/ClassCastExceptions.java | 6 +- .../infer/CloseableAsResourceExample.java | 6 +- .../codetoanalyze/java/infer/CursorLeaks.java | 6 +- .../java/infer/DivideByZero.java | 6 +- .../java/infer/FilterInputStreamLeaks.java | 6 +- .../java/infer/FilterOutputStreamLeaks.java | 6 +- .../java/infer/HashMapExample.java | 8 +- .../java/infer/IntegerExample.java | 9 + .../java/infer/JunitAssertion.java | 9 + .../java/infer/NeverNullSource.java | 6 +- .../java/infer/NullPointerExceptions.java | 8 +- .../codetoanalyze/java/infer/ReaderLeaks.java | 6 +- .../java/infer/ResourceLeaks.java | 6 +- .../java/infer/ReturnValueIgnored.java | 6 +- .../codetoanalyze/java/infer/SomeLibrary.java | 9 + infer/tests/codetoanalyze/java/infer/T.java | 6 +- .../tests/codetoanalyze/java/infer/Utils.java | 6 +- .../codetoanalyze/java/infer/WriterLeaks.java | 6 +- ...ArrayIndexOutOfBoundsExceptionExample.java | 6 +- .../tracing/ClassCastExceptionExample.java | 6 +- .../LocallyDefinedExceptionExample.java | 6 +- .../tracing/NullPointerExceptionExample.java | 6 +- .../java/tracing/ReportOnMainExample.java | 6 +- infer/tests/codetoanalyze/java/tracing/T.java | 6 +- .../tracing/UnavoidableExceptionExample.java | 6 +- .../errors/category_procdesc/EOCPerson.dot | 8 +- .../objc/errors/category_procdesc/EOCPerson.h | 8 +- .../objc/errors/category_procdesc/EOCPerson.m | 8 +- .../objc/errors/category_procdesc/main.c | 8 +- .../objc/errors/category_procdesc/main.dot | 10 +- .../objc/errors/field_superclass/A.h | 8 +- .../objc/errors/field_superclass/B.h | 8 +- .../objc/errors/field_superclass/B.m | 8 +- .../errors/field_superclass/SuperExample.dot | 18 +- .../errors/field_superclass/SuperExample.m | 8 +- .../objc/errors/field_superclass/field.c | 8 +- .../memory_leaks_benchmark/ArcExample.dot | 14 +- .../memory_leaks_benchmark/ArcExample.m | 8 +- .../AutoreleaseExample.dot | 62 +- .../AutoreleaseExample.m | 8 +- .../MemoryLeakExample.dot | 76 +-- .../MemoryLeakExample.h | 8 +- .../MemoryLeakExample.m | 8 +- .../NSMakeCollectableExample.m | 9 + .../NSStringInitWithBytesNoCopyExample.m | 8 +- .../RetainReleaseExample.dot | 8 +- .../RetainReleaseExample.m | 8 +- .../RetainReleaseExample2.dot | 50 +- .../RetainReleaseExample2.m | 8 +- .../RetainReleaseExampleBucketing.m | 8 +- .../TollBridgeExample.dot | 28 +- .../TollBridgeExample.m | 8 +- .../memory_leaks_benchmark/arc_methods.dot | 24 +- .../memory_leaks_benchmark/arc_methods.m | 8 +- .../memory_leaks_benchmark/retain_cycle.m | 10 +- .../memory_leaks_benchmark/retain_cycle2.m | 9 + .../codetoanalyze/objc/errors/npe/Fraction.m | 8 +- .../objc/errors/npe/NPD_core_foundation.h | 8 +- .../objc/errors/npe/NPD_core_foundation.m | 8 +- .../errors/npe/Nonnull_attribute_example.dot | 20 +- .../errors/npe/Nonnull_attribute_example.m | 8 +- .../objc/errors/npe/UpdateDict.m | 8 +- .../codetoanalyze/objc/errors/npe/block.m | 8 +- .../objc/errors/npe/nil_in_array_literal.m | 8 +- .../codetoanalyze/objc/errors/npe/nil_param.m | 8 +- .../objc/errors/npe/npe_malloc.dot | 8 +- .../objc/errors/npe/npe_malloc.m | 8 +- .../codetoanalyze/objc/errors/npe/npe_self.m | 8 +- .../objc/errors/npe/null_returned_by_method.m | 8 +- .../objc/errors/procdescs/MethodCall.h | 8 +- .../objc/errors/procdescs/MethodCall.m | 8 +- .../objc/errors/procdescs/main.c | 8 +- .../objc/errors/property/IvarExample.h | 8 +- .../codetoanalyze/objc/errors/property/main.c | 8 +- .../objc/errors/protocol_procdesc/Bicycle.h | 8 +- .../objc/errors/protocol_procdesc/Bicycle.m | 8 +- .../errors/protocol_procdesc/StreetVehicle.h | 8 +- .../objc/errors/protocol_procdesc/main.c | 8 +- .../objc/errors/protocol_procdesc/main.dot | 8 +- .../resource_leaks/ResourceLeakExample.m | 8 +- .../objc/errors/returnstmt/return_npe_test.m | 8 +- .../premature_nil_termination.m | 8 +- .../frontend/assertions/NSAssert_example.dot | 96 ++-- .../frontend/assertions/NSAssert_example.m | 8 +- .../objc/frontend/block/BlockVar.dot | 18 +- .../objc/frontend/block/BlockVar.h | 8 +- .../objc/frontend/block/BlockVar.m | 8 +- .../objc/frontend/block/block.dot | 40 +- .../codetoanalyze/objc/frontend/block/block.m | 8 +- .../objc/frontend/block/block_no_args.dot | 16 +- .../objc/frontend/block/block_no_args.m | 8 +- .../objc/frontend/block/block_release.dot | 30 +- .../objc/frontend/block/block_release.m | 8 +- .../objc/frontend/block/dispatch.dot | 34 +- .../objc/frontend/block/dispatch.m | 8 +- .../objc/frontend/block/dispatch_examples.dot | 96 ++-- .../objc/frontend/block/dispatch_examples.m | 8 +- .../codetoanalyze/objc/frontend/block/main.m | 8 +- .../objc/frontend/block/retain_cycle.dot | 28 +- .../objc/frontend/block/retain_cycle.m | 8 +- .../objc/frontend/block/static.dot | 44 +- .../objc/frontend/block/static.m | 8 +- .../objc/frontend/boxing/Boxing.dot | 40 +- .../objc/frontend/boxing/Boxing.h | 8 +- .../objc/frontend/boxing/Boxing.m | 8 +- .../objc/frontend/boxing/array.dot | 16 +- .../objc/frontend/boxing/array.m | 8 +- .../objc/frontend/boxing/array_literal.c | 8 +- .../objc/frontend/boxing/array_literal.dot | 6 +- .../objc/frontend/boxing/dict_literal.c | 8 +- .../objc/frontend/boxing/dict_literal.dot | 8 +- .../objc/frontend/boxing/string_literal.c | 8 +- .../objc/frontend/boxing/string_literal.dot | 8 +- .../ConditionalOperation.dot | 16 +- .../ConditionalOperation.m | 8 +- .../frontend/exceptions/ExceptionExample.dot | 18 +- .../frontend/exceptions/ExceptionExample.m | 8 +- .../fast_enumeration/Fast_enumeration.dot | 30 +- .../fast_enumeration/Fast_enumeration.m | 9 + .../predefined_expr/PredefinedExprExample.dot | 12 +- .../predefined_expr/PredefinedExprExample.m | 8 +- .../objc/frontend/property/Car.h | 8 +- .../objc/frontend/property/Car.m | 8 +- .../frontend/property/PropertyAttributes.dot | 34 +- .../frontend/property/PropertyAttributes.m | 8 +- .../property/PropertyCustomAccessor.dot | 2 +- .../property/PropertyCustomAccessor.m | 8 +- .../frontend/property/PropertyImplSetter.dot | 4 +- .../frontend/property/PropertyImplSetter.h | 8 +- .../frontend/property/PropertyImplSetter.m | 8 +- .../frontend/property/Property_getter.dot | 6 +- .../objc/frontend/property/Property_getter.m | 8 +- .../objc/frontend/property/aclass.dot | 4 +- .../objc/frontend/property/aclass.m | 8 +- .../objc/frontend/property/main_car.dot | 10 +- .../objc/frontend/property/main_car.m | 8 +- .../property_in_protocol/MyProtocol.h | 8 +- .../frontend/property_in_protocol/Test.dot | 2 +- .../objc/frontend/property_in_protocol/Test.h | 8 +- .../objc/frontend/property_in_protocol/Test.m | 8 +- .../objc/frontend/protocol/protocol.dot | 10 +- .../objc/frontend/protocol/protocol.m | 8 +- .../objc/frontend/returnstmt/void_return.dot | 24 +- .../objc/frontend/returnstmt/void_return.m | 8 +- .../objc/frontend/self_static/Self.dot | 70 +-- .../objc/frontend/self_static/Self.m | 8 +- .../objc/frontend/self_static/static.dot | 20 +- .../objc/frontend/self_static/static.m | 8 +- .../strings/global_string_literal.dot | 4 +- .../frontend/strings/global_string_literal.m | 8 +- .../objc/frontend/strings/string_literal.dot | 6 +- .../objc/frontend/strings/string_literal.m | 8 +- .../codetoanalyze/objc/frontend/subclass/A.h | 8 +- .../codetoanalyze/objc/frontend/subclass/A.m | 8 +- .../objc/frontend/subclass/MyClass.dot | 4 +- .../objc/frontend/subclass/MyClass.h | 8 +- .../objc/frontend/subclass/MyClass.m | 8 +- .../objc/frontend/subclass/MySubClass.dot | 6 +- .../objc/frontend/subclass/MySubClass.h | 8 +- .../objc/frontend/subclass/MySubClass.m | 8 +- .../objc/frontend/subclass/main.c | 8 +- .../objc/frontend/subclass/main.dot | 6 +- .../objc/frontend/types/attributes.dot | 26 +- .../objc/frontend/types/attributes.m | 8 +- .../objc/frontend/types/testloop.dot | 4 +- .../objc/frontend/types/testloop.m | 8 +- .../objc/frontend/types/void_call.dot | 36 +- .../objc/frontend/types/void_call.m | 8 +- .../objc/frontend/vardecl/aclass.dot | 4 +- .../objc/frontend/vardecl/aclass.m | 8 +- .../objc/frontend/vardecl/aclass_2.dot | 4 +- .../objc/frontend/vardecl/aclass_2.m | 8 +- .../objc/frontend/vardecl/initlist.dot | 12 +- .../objc/frontend/vardecl/initlist.m | 8 +- .../objc/frontend/vardecl/last_af.dot | 6 +- .../objc/frontend/vardecl/last_af.m | 8 +- .../warnings/ParameterNotNullableExample.m | 6 +- .../frontend/funcoverloading/af_test.dot | 8 +- .../frontend/funcoverloading/af_test.mm | 8 +- infer/tests/endtoend/c/AngelismTest.java | 8 +- .../endtoend/c/ArrayOutOfBoundsTest.java | 8 +- infer/tests/endtoend/c/AssertTest.java | 8 +- .../endtoend/c/AssertionFailureTest.java | 6 +- infer/tests/endtoend/c/DivideByZeroTest.java | 8 +- infer/tests/endtoend/c/InitListExprTest.java | 8 +- infer/tests/endtoend/c/ListsTest.java | 8 +- infer/tests/endtoend/c/LocalVarsTest.java | 8 +- infer/tests/endtoend/c/MemoryLeakTest.java | 8 +- .../tests/endtoend/c/NullDereferenceTest.java | 10 +- .../endtoend/c/NullDereferenceTest2.java | 8 +- infer/tests/endtoend/c/ResourceLeakTest.java | 8 +- .../java/checkers/ImmutableCastTest.java | 6 +- .../java/checkers/PrintfArgsCheckerTest.java | 6 +- .../ArrayIndexOutOfBoundsExceptionTest.java | 6 +- .../comparison/ClassCastExceptionTest.java | 6 +- .../comparison/NullPointerExceptionTest.java | 6 +- .../ActivityFieldNotInitializedTest.java | 7 +- .../eradicate/FieldNotInitializedTest.java | 6 +- .../java/eradicate/FieldNotNullableTest.java | 6 +- .../InconsistentSubclassAnnotationTest.java | 6 +- .../java/eradicate/LibraryCallsTest.java | 7 +- .../java/eradicate/NullFieldAccessTest.java | 6 +- .../java/eradicate/NullMethodCallTest.java | 6 +- .../eradicate/ParameterNotNullableTest.java | 6 +- .../java/eradicate/ReturnNotNullableTest.java | 6 +- .../SuppressedFieldNotInitializedTest.java | 7 +- .../endtoend/java/harness/CallbackTest.java | 6 +- .../java/harness/FindViewByIdTest.java | 6 +- .../endtoend/java/harness/InhabitTest.java | 6 +- .../endtoend/java/harness/LifecycleTest.java | 6 +- .../endtoend/java/harness/SuperclassTest.java | 6 +- .../java/infer/AnalysisStopsTest.java | 8 +- .../java/infer/ArrayOutOfBoundsTest.java | 6 +- .../java/infer/AutoGeneratedTest.java | 8 +- .../endtoend/java/infer/BuiltinsTest.java | 8 +- .../java/infer/ClassCastExceptionsTest.java | 6 +- .../java/infer/CloseableAsResourceTest.java | 6 +- .../endtoend/java/infer/CursorLeaksTest.java | 6 +- .../endtoend/java/infer/DivideByZeroTest.java | 8 +- .../infer/FilterInputStreamLeaksTest.java | 6 +- .../infer/FilterOutputStreamLeaksTest.java | 6 +- .../endtoend/java/infer/HashMapModelTest.java | 8 +- .../endtoend/java/infer/IntegerClassTest.java | 6 +- .../java/infer/JunitAssertionTest.java | 9 + .../java/infer/NullPointerExceptionTest.java | 8 +- .../endtoend/java/infer/ReaderLeaksTest.java | 6 +- .../java/infer/ResourceLeaksTest.java | 6 +- .../java/infer/ReturnValueIgnoredTest.java | 6 +- .../endtoend/java/infer/WriterLeaksTest.java | 6 +- .../ArrayIndexOutOfBoundsExceptionTest.java | 6 +- .../java/tracing/ClassCastExceptionTest.java | 6 +- .../tracing/LocallyDefinedExceptionTest.java | 9 + .../tracing/NullPointerExceptionTest.java | 6 +- .../java/tracing/ReportOnMainTest.java | 6 +- .../tracing/UnavoidableExceptionTest.java | 6 +- .../tests/endtoend/objc/AutoreleaseTest.java | 8 +- infer/tests/endtoend/objc/BlockTest.java | 8 +- .../endtoend/objc/CategoryProcdescTest.java | 8 +- infer/tests/endtoend/objc/DispatchTest.java | 8 +- .../endtoend/objc/FieldSuperclassTest.java | 8 +- .../objc/MemoryLeakBucketingArcTest.java | 8 +- .../objc/MemoryLeakBucketingTest.java | 8 +- infer/tests/endtoend/objc/MemoryLeakTest.java | 8 +- .../objc/MemoryLeaksFromModelsTest.java | 8 +- .../objc/NPDCoreFoundationClassTest.java | 8 +- .../endtoend/objc/NPEArrayLiteralTest.java | 8 +- infer/tests/endtoend/objc/NPEMallocTest.java | 8 +- infer/tests/endtoend/objc/NPESelfTest.java | 8 +- infer/tests/endtoend/objc/NSAssertTest.java | 8 +- .../endtoend/objc/NSMakeCollectableTest.java | 8 +- .../objc/NilParamDerefObjCClassTest.java | 8 +- .../endtoend/objc/NonnullAttributeTest.java | 8 +- .../endtoend/objc/NullDerefObjCBlockTest.java | 8 +- .../endtoend/objc/NullDerefObjCClassTest.java | 8 +- .../objc/NullReturnedByMethodTest.java | 8 +- .../objc/ParameterNotNullableTest.java | 6 +- .../objc/PrematureNilTerminationTest.java | 8 +- infer/tests/endtoend/objc/ProcdescTest.java | 8 +- .../endtoend/objc/PropertyMemoryLeakTest.java | 8 +- infer/tests/endtoend/objc/PropertyTest.java | 8 +- .../endtoend/objc/ProtocolProcdescTest.java | 8 +- .../tests/endtoend/objc/ResourceLeakTest.java | 8 +- .../tests/endtoend/objc/RetainCycle2Test.java | 8 +- .../tests/endtoend/objc/RetainCycleTest.java | 8 +- .../endtoend/objc/RetainreleaseTest.java | 8 +- infer/tests/endtoend/objc/ReturnTest.java | 8 +- infer/tests/endtoend/objc/SuperTest.java | 8 +- infer/tests/endtoend/objc/TollBridgeTest.java | 8 +- .../endtoend/objc/UpdateDictNPETest.java | 8 +- infer/tests/frontend/c/ArithmeticExpTest.java | 8 +- infer/tests/frontend/c/BoolTest.java | 8 +- infer/tests/frontend/c/CommaOperatorTest.java | 8 +- .../frontend/c/ConditionalOperatorTest.java | 8 +- infer/tests/frontend/c/EnumerationTest.java | 8 +- infer/tests/frontend/c/GnuexprTest.java | 8 +- .../frontend/c/GotoStmtLabelStmtTest.java | 8 +- infer/tests/frontend/c/InitListExprTest.java | 8 +- infer/tests/frontend/c/LoopsTest.java | 8 +- .../tests/frontend/c/NestedOperatorsTest.java | 8 +- infer/tests/frontend/c/PrototypeTest.java | 8 +- infer/tests/frontend/c/SwitchStmtTest.java | 8 +- infer/tests/frontend/cpp/CastsTest.java | 8 +- infer/tests/frontend/cpp/FunctionsTest.java | 8 +- infer/tests/frontend/cpp/LiteralsTest.java | 8 +- infer/tests/frontend/cpp/NamespaceTest.java | 8 +- infer/tests/frontend/objc/ArcExampleTest.java | 8 +- infer/tests/frontend/objc/BlockTest.java | 8 +- infer/tests/frontend/objc/BoxingTest.java | 8 +- infer/tests/frontend/objc/CategoryTest.java | 8 +- .../objc/ConditionalOperatorTest.java | 8 +- infer/tests/frontend/objc/ExceptionTest.java | 8 +- .../frontend/objc/FastEnumerationTest.java | 8 +- .../frontend/objc/LateDefinedVarDeclTest.java | 8 +- infer/tests/frontend/objc/MallocTest.java | 8 +- .../objc/MemoryLeakBenchmarkTest.java | 8 +- infer/tests/frontend/objc/NSAssertTest.java | 8 +- .../frontend/objc/NonnullAttributeTest.java | 8 +- .../objc/PredefinedExpressionTest.java | 8 +- infer/tests/frontend/objc/PropertyTest.java | 8 +- infer/tests/frontend/objc/ProtocolTest.java | 8 +- infer/tests/frontend/objc/ReturnTest.java | 8 +- infer/tests/frontend/objc/StaticSelf.java | 8 +- infer/tests/frontend/objc/StringTest.java | 8 +- infer/tests/frontend/objc/SubclassTest.java | 8 +- infer/tests/frontend/objc/TypesTest.java | 8 +- .../frontend/objcpp/FuncOverloadingTest.java | 8 +- infer/tests/utils/InferError.java | 6 +- infer/tests/utils/InferException.java | 6 +- infer/tests/utils/InferResults.java | 6 +- infer/tests/utils/InferRunner.java | 6 +- infer/tests/utils/Language.java | 6 +- infer/tests/utils/TestType.java | 6 +- infer/tests/utils/matchers/DotFilesEqual.java | 9 + infer/tests/utils/matchers/ErrorPattern.java | 6 +- .../matchers/ResultContainsErrorInMethod.java | 9 + .../ResultContainsErrorNoFilename.java | 9 + .../utils/matchers/ResultContainsExactly.java | 4 + .../matchers/ResultContainsLineNumbers.java | 9 + .../ResultContainsNoErrorInMethod.java | 9 + .../ResultContainsNumberOfErrorsInMethod.java | 9 + .../ResultContainsOnlyTheseErrors.java | 9 + .../matchers/ResultContainsTheseErrors.java | 4 + .../ResultContainsZeroErrorsInMethod.java | 9 + scripts/check_clang_plugin_version.sh | 7 +- scripts/create_binaries.sh | 8 +- scripts/test.sh | 8 +- update-fcp.sh | 8 + 905 files changed, 6529 insertions(+), 3183 deletions(-) delete mode 100644 infer/src/backend/OcamlMakefile diff --git a/compile-fcp.sh b/compile-fcp.sh index 180c99183..002b192bb 100755 --- a/compile-fcp.sh +++ b/compile-fcp.sh @@ -1,4 +1,12 @@ #!/bin/bash + +# Copyright (c) 2015 - present Facebook, Inc. +# All rights reserved. +# +# This source code is licensed under the BSD style license found in the +# LICENSE file in the root directory of this source tree. An additional grant +# of patent rights can be found in the PATENTS file in the same directory. + set -e set -x diff --git a/infer/annotations/com/facebook/infer/annotation/Assertions.java b/infer/annotations/com/facebook/infer/annotation/Assertions.java index e6b8d16ed..43b2e4468 100644 --- a/infer/annotations/com/facebook/infer/annotation/Assertions.java +++ b/infer/annotations/com/facebook/infer/annotation/Assertions.java @@ -1,4 +1,11 @@ -// Copyright 2004-present Facebook. All Rights Reserved. +/* +* Copyright (c) 2004 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. +*/ package com.facebook.infer.annotation; diff --git a/infer/annotations/com/facebook/infer/annotation/Initializer.java b/infer/annotations/com/facebook/infer/annotation/Initializer.java index 1cf0f1298..ef8da2e36 100644 --- a/infer/annotations/com/facebook/infer/annotation/Initializer.java +++ b/infer/annotations/com/facebook/infer/annotation/Initializer.java @@ -1,4 +1,11 @@ -// Copyright 2004-present Facebook. All Rights Reserved. +/* +* Copyright (c) 2004 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. +*/ package com.facebook.infer.annotation; diff --git a/infer/annotations/com/facebook/infer/annotation/Mutable.java b/infer/annotations/com/facebook/infer/annotation/Mutable.java index 0be0f9d27..2d49ee233 100644 --- a/infer/annotations/com/facebook/infer/annotation/Mutable.java +++ b/infer/annotations/com/facebook/infer/annotation/Mutable.java @@ -1,4 +1,11 @@ -// Copyright 2004-present Facebook. All Rights Reserved. +/* +* Copyright (c) 2004 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. +*/ package com.facebook.infer.annotation; diff --git a/infer/annotations/com/facebook/infer/annotation/Present.java b/infer/annotations/com/facebook/infer/annotation/Present.java index 1033d1981..c2e9ce852 100644 --- a/infer/annotations/com/facebook/infer/annotation/Present.java +++ b/infer/annotations/com/facebook/infer/annotation/Present.java @@ -1,4 +1,11 @@ -// Copyright 2004-present Facebook. All Rights Reserved. +/* +* Copyright (c) 2004 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. +*/ package com.facebook.infer.annotation; diff --git a/infer/annotations/com/facebook/infer/annotation/Strict.java b/infer/annotations/com/facebook/infer/annotation/Strict.java index 76477fe85..3f0a9230f 100644 --- a/infer/annotations/com/facebook/infer/annotation/Strict.java +++ b/infer/annotations/com/facebook/infer/annotation/Strict.java @@ -1,4 +1,11 @@ -// Copyright 2004-present Facebook. All Rights Reserved. +/* +* Copyright (c) 2004 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. +*/ package com.facebook.infer.annotation; diff --git a/infer/annotations/com/facebook/infer/annotation/SuppressFieldNotInitialized.java b/infer/annotations/com/facebook/infer/annotation/SuppressFieldNotInitialized.java index 18175e94c..7531dd128 100644 --- a/infer/annotations/com/facebook/infer/annotation/SuppressFieldNotInitialized.java +++ b/infer/annotations/com/facebook/infer/annotation/SuppressFieldNotInitialized.java @@ -1,4 +1,11 @@ -// Copyright 2004-present Facebook. All Rights Reserved. +/* +* Copyright (c) 2004 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. +*/ package com.facebook.infer.annotation; diff --git a/infer/annotations/com/facebook/infer/annotation/SuppressFieldNotNullable.java b/infer/annotations/com/facebook/infer/annotation/SuppressFieldNotNullable.java index a65787113..f46ef4542 100644 --- a/infer/annotations/com/facebook/infer/annotation/SuppressFieldNotNullable.java +++ b/infer/annotations/com/facebook/infer/annotation/SuppressFieldNotNullable.java @@ -1,4 +1,11 @@ -// Copyright 2004-present Facebook. All Rights Reserved. +/* +* Copyright (c) 2004 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. +*/ package com.facebook.infer.annotation; diff --git a/infer/annotations/com/facebook/infer/annotation/SuppressNullFieldAccess.java b/infer/annotations/com/facebook/infer/annotation/SuppressNullFieldAccess.java index adb80100f..7c9e653f3 100644 --- a/infer/annotations/com/facebook/infer/annotation/SuppressNullFieldAccess.java +++ b/infer/annotations/com/facebook/infer/annotation/SuppressNullFieldAccess.java @@ -1,4 +1,11 @@ -// Copyright 2004-present Facebook. All Rights Reserved. +/* +* Copyright (c) 2004 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. +*/ package com.facebook.infer.annotation; diff --git a/infer/annotations/com/facebook/infer/annotation/SuppressNullMethodCall.java b/infer/annotations/com/facebook/infer/annotation/SuppressNullMethodCall.java index 0a8f7c93d..8b6631c2d 100644 --- a/infer/annotations/com/facebook/infer/annotation/SuppressNullMethodCall.java +++ b/infer/annotations/com/facebook/infer/annotation/SuppressNullMethodCall.java @@ -1,4 +1,11 @@ -// Copyright 2004-present Facebook. All Rights Reserved. +/* +* Copyright (c) 2004 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. +*/ package com.facebook.infer.annotation; diff --git a/infer/annotations/com/facebook/infer/annotation/SuppressParameterNotNullable.java b/infer/annotations/com/facebook/infer/annotation/SuppressParameterNotNullable.java index 5684f6dcc..b6ef21454 100644 --- a/infer/annotations/com/facebook/infer/annotation/SuppressParameterNotNullable.java +++ b/infer/annotations/com/facebook/infer/annotation/SuppressParameterNotNullable.java @@ -1,4 +1,11 @@ -// Copyright 2004-present Facebook. All Rights Reserved. +/* +* Copyright (c) 2004 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. +*/ package com.facebook.infer.annotation; diff --git a/infer/annotations/com/facebook/infer/annotation/SuppressReturnOverAnnotated.java b/infer/annotations/com/facebook/infer/annotation/SuppressReturnOverAnnotated.java index 56d01b0dc..0b7d894e9 100644 --- a/infer/annotations/com/facebook/infer/annotation/SuppressReturnOverAnnotated.java +++ b/infer/annotations/com/facebook/infer/annotation/SuppressReturnOverAnnotated.java @@ -1,4 +1,11 @@ -// Copyright 2004-present Facebook. All Rights Reserved. +/* +* Copyright (c) 2004 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. +*/ package com.facebook.infer.annotation; diff --git a/infer/annotations/com/facebook/infer/annotation/Verify.java b/infer/annotations/com/facebook/infer/annotation/Verify.java index 1f1a13059..4fca600f5 100644 --- a/infer/annotations/com/facebook/infer/annotation/Verify.java +++ b/infer/annotations/com/facebook/infer/annotation/Verify.java @@ -1,4 +1,11 @@ -// Copyright 2004-present Facebook. All Rights Reserved. +/* +* Copyright (c) 2004 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. +*/ package com.facebook.infer.annotation; diff --git a/infer/bin/BuckAnalyze b/infer/bin/BuckAnalyze index 407f02390..f79cf09e8 100755 --- a/infer/bin/BuckAnalyze +++ b/infer/bin/BuckAnalyze @@ -1,8 +1,11 @@ #!/usr/bin/env python2.7 +# Copyright (c) 2013 - present Facebook, Inc. +# All rights reserved. # -# Copyright (c) 2013-present Facebook. All rights reserved. -# +# This source code is licensed under the BSD style license found in the +# LICENSE file in the root directory of this source tree. An additional grant +# of patent rights can be found in the PATENTS file in the same directory. from __future__ import absolute_import from __future__ import division diff --git a/infer/bin/inferJ b/infer/bin/inferJ index e479501ea..9493b1225 100755 --- a/infer/bin/inferJ +++ b/infer/bin/inferJ @@ -1,8 +1,11 @@ #!/usr/bin/env python2.7 +# Copyright (c) 2013 - present Facebook, Inc. +# All rights reserved. # -# Copyright (c) 2013- Facebook. All rights reserved. -# +# This source code is licensed under the BSD style license found in the +# LICENSE file in the root directory of this source tree. An additional grant +# of patent rights can be found in the PATENTS file in the same directory. from __future__ import absolute_import from __future__ import division diff --git a/infer/bin/inferTest b/infer/bin/inferTest index 229545d9a..d97b59309 100755 --- a/infer/bin/inferTest +++ b/infer/bin/inferTest @@ -1,7 +1,11 @@ #!/bin/bash -e -# Copyright (c) 2013 - Facebook. +# Copyright (c) 2013 - present Facebook, Inc. # All rights reserved. +# +# This source code is licensed under the BSD style license found in the +# LICENSE file in the root directory of this source tree. An additional grant +# of patent rights can be found in the PATENTS file in the same directory. # This script takes a buck target and runs the respective tests. diff --git a/infer/bin/inferTraceBugs b/infer/bin/inferTraceBugs index 0430b5e22..052959ddb 100755 --- a/infer/bin/inferTraceBugs +++ b/infer/bin/inferTraceBugs @@ -1,8 +1,11 @@ #!/usr/bin/env python2.7 +# Copyright (c) 2013 - present Facebook, Inc. +# All rights reserved. # -# Copyright (c) 2013-present Facebook. All rights reserved. -# +# This source code is licensed under the BSD style license found in the +# LICENSE file in the root directory of this source tree. An additional grant +# of patent rights can be found in the PATENTS file in the same directory. from __future__ import absolute_import from __future__ import division diff --git a/infer/bin/inferlib.py b/infer/bin/inferlib.py index 86ab68c9c..e52e0d633 100644 --- a/infer/bin/inferlib.py +++ b/infer/bin/inferlib.py @@ -1,6 +1,9 @@ +# Copyright (c) 2013 - present Facebook, Inc. +# All rights reserved. # -# Copyright (c) 2013- Facebook. All rights reserved. -# +# This source code is licensed under the BSD style license found in the +# LICENSE file in the root directory of this source tree. An additional grant +# of patent rights can be found in the PATENTS file in the same directory. from __future__ import absolute_import from __future__ import division diff --git a/infer/bin/jwlib.py b/infer/bin/jwlib.py index f375dacac..52f078639 100644 --- a/infer/bin/jwlib.py +++ b/infer/bin/jwlib.py @@ -1,6 +1,10 @@ -# Copyright (c) 2009-2013 Monoidics ltd. -# Copyright (c) 2013- Facebook. +# Copyright (c) 2009 - 2013 Monoidics ltd. +# Copyright (c) 2013 - present Facebook, Inc. # All rights reserved. +# +# This source code is licensed under the BSD style license found in the +# LICENSE file in the root directory of this source tree. An additional grant +# of patent rights can be found in the PATENTS file in the same directory. import argparse import logging diff --git a/infer/bin/utils.py b/infer/bin/utils.py index 3ca92ee11..3a5ba97f9 100644 --- a/infer/bin/utils.py +++ b/infer/bin/utils.py @@ -1,6 +1,9 @@ +# Copyright (c) 2013 - present Facebook, Inc. +# All rights reserved. # -# Copyright (c) 2013- Facebook. All rights reserved. -# +# This source code is licensed under the BSD style license found in the +# LICENSE file in the root directory of this source tree. An additional grant +# of patent rights can be found in the PATENTS file in the same directory. from __future__ import absolute_import from __future__ import division diff --git a/infer/lib/capture/analyze.py b/infer/lib/capture/analyze.py index c4698c8f6..a3ebe1af6 100644 --- a/infer/lib/capture/analyze.py +++ b/infer/lib/capture/analyze.py @@ -1,3 +1,10 @@ +# Copyright (c) 2015 - present Facebook, Inc. +# All rights reserved. +# +# This source code is licensed under the BSD style license found in the +# LICENSE file in the root directory of this source tree. An additional grant +# of patent rights can be found in the PATENTS file in the same directory. + import os import util diff --git a/infer/lib/capture/ant.py b/infer/lib/capture/ant.py index 1077bddea..1ccd632aa 100644 --- a/infer/lib/capture/ant.py +++ b/infer/lib/capture/ant.py @@ -1,3 +1,10 @@ +# Copyright (c) 2015 - present Facebook, Inc. +# All rights reserved. +# +# This source code is licensed under the BSD style license found in the +# LICENSE file in the root directory of this source tree. An additional grant +# of patent rights can be found in the PATENTS file in the same directory. + import os import logging import util diff --git a/infer/lib/capture/buck.py b/infer/lib/capture/buck.py index 339109f2a..bbd2d060d 100644 --- a/infer/lib/capture/buck.py +++ b/infer/lib/capture/buck.py @@ -1,3 +1,10 @@ +# Copyright (c) 2015 - present Facebook, Inc. +# All rights reserved. +# +# This source code is licensed under the BSD style license found in the +# LICENSE file in the root directory of this source tree. An additional grant +# of patent rights can be found in the PATENTS file in the same directory. + import argparse import os import subprocess diff --git a/infer/lib/capture/gradle.py b/infer/lib/capture/gradle.py index 9187b3d44..4967542de 100644 --- a/infer/lib/capture/gradle.py +++ b/infer/lib/capture/gradle.py @@ -1,3 +1,10 @@ +# Copyright (c) 2015 - present Facebook, Inc. +# All rights reserved. +# +# This source code is licensed under the BSD style license found in the +# LICENSE file in the root directory of this source tree. An additional grant +# of patent rights can be found in the PATENTS file in the same directory. + import os import util import logging diff --git a/infer/lib/capture/javac.py b/infer/lib/capture/javac.py index 65763a721..548090869 100644 --- a/infer/lib/capture/javac.py +++ b/infer/lib/capture/javac.py @@ -1,3 +1,10 @@ +# Copyright (c) 2015 - present Facebook, Inc. +# All rights reserved. +# +# This source code is licensed under the BSD style license found in the +# LICENSE file in the root directory of this source tree. An additional grant +# of patent rights can be found in the PATENTS file in the same directory. + import os import subprocess import traceback diff --git a/infer/lib/capture/make.py b/infer/lib/capture/make.py index 5f9813444..9c30eb17c 100644 --- a/infer/lib/capture/make.py +++ b/infer/lib/capture/make.py @@ -1,3 +1,10 @@ +# Copyright (c) 2015 - present Facebook, Inc. +# All rights reserved. +# +# This source code is licensed under the BSD style license found in the +# LICENSE file in the root directory of this source tree. An additional grant +# of patent rights can be found in the PATENTS file in the same directory. + import os import subprocess import traceback diff --git a/infer/lib/capture/mvn.py b/infer/lib/capture/mvn.py index 211bee3dc..4780c6175 100644 --- a/infer/lib/capture/mvn.py +++ b/infer/lib/capture/mvn.py @@ -1,6 +1,9 @@ +# Copyright (c) 2015 - present Facebook, Inc. +# All rights reserved. # -# Copyright (c) 2013- Facebook. All rights reserved. -# +# This source code is licensed under the BSD style license found in the +# LICENSE file in the root directory of this source tree. An additional grant +# of patent rights can be found in the PATENTS file in the same directory. import os import logging diff --git a/infer/lib/capture/util.py b/infer/lib/capture/util.py index 44c3c6a18..3af9259b2 100644 --- a/infer/lib/capture/util.py +++ b/infer/lib/capture/util.py @@ -1,7 +1,11 @@ #!/usr/bin/env python -# Copyright (c) 2013- Facebook. +# Copyright (c) 2015 - present Facebook, Inc. # All rights reserved. +# +# This source code is licensed under the BSD style license found in the +# LICENSE file in the root directory of this source tree. An additional grant +# of patent rights can be found in the PATENTS file in the same directory. import argparse import os diff --git a/infer/lib/capture/xcodebuild.py b/infer/lib/capture/xcodebuild.py index 02cd33699..3089301e1 100644 --- a/infer/lib/capture/xcodebuild.py +++ b/infer/lib/capture/xcodebuild.py @@ -1,3 +1,10 @@ +# Copyright (c) 2015 - present Facebook, Inc. +# All rights reserved. +# +# This source code is licensed under the BSD style license found in the +# LICENSE file in the root directory of this source tree. An additional grant +# of patent rights can be found in the PATENTS file in the same directory. + import os import subprocess import traceback diff --git a/infer/models/c/src/glib.c b/infer/models/c/src/glib.c index 9b8a974af..b22ea869e 100644 --- a/infer/models/c/src/glib.c +++ b/infer/models/c/src/glib.c @@ -1,7 +1,11 @@ /* - * Copyright (c) 2009-2013 Monoidics ltd. - * Copyright (c) 2013- Facebook. - * All rights reserved. +* Copyright (c) 2009 - 2013 Monoidics ltd. +* Copyright (c) 2013 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ // Basic modelling of some glib functions diff --git a/infer/models/c/src/infer_builtins.c b/infer/models/c/src/infer_builtins.c index b46bd64ee..e5d45e3c7 100644 --- a/infer/models/c/src/infer_builtins.c +++ b/infer/models/c/src/infer_builtins.c @@ -1,7 +1,11 @@ /* - * Copyright (c) 2009-2013 Monoidics ltd. - * Copyright (c) 2013- Facebook. - * All rights reserved. +* Copyright (c) 2009 - 2013 Monoidics ltd. +* Copyright (c) 2013 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ // builtins to be used to model library functions diff --git a/infer/models/c/src/infer_builtins.h b/infer/models/c/src/infer_builtins.h index b381d3cda..ba5267323 100644 --- a/infer/models/c/src/infer_builtins.h +++ b/infer/models/c/src/infer_builtins.h @@ -1,7 +1,11 @@ /* - * Copyright (c) 2009-2013 Monoidics ltd. - * Copyright (c) 2013- Facebook. - * All rights reserved. +* Copyright (c) 2009 - 2013 Monoidics ltd. +* Copyright (c) 2013 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ // builtins to be used to model library functions diff --git a/infer/models/c/src/libc_basic.c b/infer/models/c/src/libc_basic.c index ac34fccad..a623d8e67 100644 --- a/infer/models/c/src/libc_basic.c +++ b/infer/models/c/src/libc_basic.c @@ -1,7 +1,11 @@ /* - * Copyright (c) 2009-2013 Monoidics ltd. - * Copyright (c) 2013- Facebook. - * All rights reserved. +* Copyright (c) 2009 - 2013 Monoidics ltd. +* Copyright (c) 2013 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ // Basic modelling of some libc functions diff --git a/infer/models/c/src/math.c b/infer/models/c/src/math.c index 3fd08dde1..dd9847bb1 100644 --- a/infer/models/c/src/math.c +++ b/infer/models/c/src/math.c @@ -1,7 +1,11 @@ /* - * Copyright (c) 2009-2013 Monoidics ltd. - * Copyright (c) 2013- Facebook. - * All rights reserved. +* Copyright (c) 2009 - 2013 Monoidics ltd. +* Copyright (c) 2013 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ // modelling of math functions diff --git a/infer/models/c/src/wchar.c b/infer/models/c/src/wchar.c index 97104dd4f..010ded968 100644 --- a/infer/models/c/src/wchar.c +++ b/infer/models/c/src/wchar.c @@ -1,7 +1,11 @@ /* - * Copyright (c) 2009-2013 Monoidics ltd. - * Copyright (c) 2013- Facebook. - * All rights reserved. +* Copyright (c) 2009 - 2013 Monoidics ltd. +* Copyright (c) 2013 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ // modelling of wide character functions diff --git a/infer/models/c/src/wctype.c b/infer/models/c/src/wctype.c index 2cf4f6ac4..6315a63e0 100644 --- a/infer/models/c/src/wctype.c +++ b/infer/models/c/src/wctype.c @@ -1,7 +1,11 @@ /* - * Copyright (c) 2009-2013 Monoidics ltd. - * Copyright (c) 2013- Facebook. - * All rights reserved. +* Copyright (c) 2009 - 2013 Monoidics ltd. +* Copyright (c) 2013 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ // modelling of wctype functions diff --git a/infer/models/c/src/xlib.c b/infer/models/c/src/xlib.c index b59df9cce..aa7319e60 100644 --- a/infer/models/c/src/xlib.c +++ b/infer/models/c/src/xlib.c @@ -1,7 +1,11 @@ /* - * Copyright (c) 2009-2013 Monoidics ltd. - * Copyright (c) 2013- Facebook. - * All rights reserved. +* Copyright (c) 2009 - 2013 Monoidics ltd. +* Copyright (c) 2013 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ // Basic modelling of some xlib functions diff --git a/infer/models/cpp/src/shared_ptr.cpp b/infer/models/cpp/src/shared_ptr.cpp index 44778f17a..9ec6857eb 100644 --- a/infer/models/cpp/src/shared_ptr.cpp +++ b/infer/models/cpp/src/shared_ptr.cpp @@ -1,7 +1,11 @@ /* - * Copyright (c) 2009-2013 Monoidics ltd. - * Copyright (c) 2013- Facebook. - * All rights reserved. +* Copyright (c) 2009 - 2013 Monoidics ltd. +* Copyright (c) 2013 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ // models for shared_ptr diff --git a/infer/models/java/src/android/app/Activity.java b/infer/models/java/src/android/app/Activity.java index db8b5db22..dc8cc7075 100644 --- a/infer/models/java/src/android/app/Activity.java +++ b/infer/models/java/src/android/app/Activity.java @@ -1,6 +1,10 @@ /* -* Copyright (c) 2013- Facebook. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ package android.app; diff --git a/infer/models/java/src/android/app/DownloadManager.java b/infer/models/java/src/android/app/DownloadManager.java index 04fef4924..e10554501 100644 --- a/infer/models/java/src/android/app/DownloadManager.java +++ b/infer/models/java/src/android/app/DownloadManager.java @@ -1,6 +1,10 @@ /* -* Copyright (c) 2013- Facebook. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ package android.app; diff --git a/infer/models/java/src/android/content/ContentProviderClient.java b/infer/models/java/src/android/content/ContentProviderClient.java index 6e4922f3f..5fec08443 100644 --- a/infer/models/java/src/android/content/ContentProviderClient.java +++ b/infer/models/java/src/android/content/ContentProviderClient.java @@ -1,6 +1,10 @@ /* -* Copyright (c) 2013- Facebook. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ package android.content; diff --git a/infer/models/java/src/android/content/ContentResolver.java b/infer/models/java/src/android/content/ContentResolver.java index b2a14e91c..0a83167bd 100644 --- a/infer/models/java/src/android/content/ContentResolver.java +++ b/infer/models/java/src/android/content/ContentResolver.java @@ -1,6 +1,10 @@ /* -* Copyright (c) 2013- Facebook. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ package android.content; diff --git a/infer/models/java/src/android/content/Context.java b/infer/models/java/src/android/content/Context.java index 7d9557d44..98ec9e77a 100644 --- a/infer/models/java/src/android/content/Context.java +++ b/infer/models/java/src/android/content/Context.java @@ -1,6 +1,10 @@ /* -* Copyright (c) 2013- Facebook. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ package android.content; diff --git a/infer/models/java/src/android/content/IContentProvider.java b/infer/models/java/src/android/content/IContentProvider.java index 194612621..27083a225 100644 --- a/infer/models/java/src/android/content/IContentProvider.java +++ b/infer/models/java/src/android/content/IContentProvider.java @@ -1,6 +1,10 @@ /* -* Copyright (c) 2013- Facebook. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ package android.content; diff --git a/infer/models/java/src/android/content/IContentService.java b/infer/models/java/src/android/content/IContentService.java index b185fd188..fcbe717cf 100644 --- a/infer/models/java/src/android/content/IContentService.java +++ b/infer/models/java/src/android/content/IContentService.java @@ -1,6 +1,10 @@ /* -* Copyright (c) 2013- Facebook. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ package android.content; diff --git a/infer/models/java/src/android/content/res/Resources.java b/infer/models/java/src/android/content/res/Resources.java index a4ca51963..22e170523 100644 --- a/infer/models/java/src/android/content/res/Resources.java +++ b/infer/models/java/src/android/content/res/Resources.java @@ -1,6 +1,10 @@ /* -* Copyright (c) 2013- Facebook. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ package android.content.res; diff --git a/infer/models/java/src/android/content/res/TypedArray.java b/infer/models/java/src/android/content/res/TypedArray.java index 2d46a0ac2..e3e70b426 100644 --- a/infer/models/java/src/android/content/res/TypedArray.java +++ b/infer/models/java/src/android/content/res/TypedArray.java @@ -1,6 +1,10 @@ /* -* Copyright (c) 2013- Facebook. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ package android.content.res; diff --git a/infer/models/java/src/android/database/AbstractCursor.java b/infer/models/java/src/android/database/AbstractCursor.java index aac75fe7f..a0af2620d 100644 --- a/infer/models/java/src/android/database/AbstractCursor.java +++ b/infer/models/java/src/android/database/AbstractCursor.java @@ -1,6 +1,10 @@ /* -* Copyright (c) 2013- Facebook. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ package android.database; diff --git a/infer/models/java/src/android/database/CrossProcessCursor.java b/infer/models/java/src/android/database/CrossProcessCursor.java index 382154b63..ca9007796 100644 --- a/infer/models/java/src/android/database/CrossProcessCursor.java +++ b/infer/models/java/src/android/database/CrossProcessCursor.java @@ -1,6 +1,10 @@ /* -* Copyright (c) 2013- Facebook. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ package android.database; diff --git a/infer/models/java/src/android/database/CrossProcessCursorWrapper.java b/infer/models/java/src/android/database/CrossProcessCursorWrapper.java index ec0a6d806..b6c9b4212 100644 --- a/infer/models/java/src/android/database/CrossProcessCursorWrapper.java +++ b/infer/models/java/src/android/database/CrossProcessCursorWrapper.java @@ -1,6 +1,10 @@ /* -* Copyright (c) 2013- Facebook. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ package android.database; diff --git a/infer/models/java/src/android/database/Cursor.java b/infer/models/java/src/android/database/Cursor.java index 2f364421f..be2269d20 100644 --- a/infer/models/java/src/android/database/Cursor.java +++ b/infer/models/java/src/android/database/Cursor.java @@ -1,7 +1,11 @@ /* -* Copyright (c) 2009-2013 Monoidics ltd. -* Copyright (c) 2013- Facebook. +* Copyright (c) 2009 - 2013 Monoidics ltd. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ package android.database; diff --git a/infer/models/java/src/android/database/CursorWrapper.java b/infer/models/java/src/android/database/CursorWrapper.java index d75c0a308..92fd49b41 100644 --- a/infer/models/java/src/android/database/CursorWrapper.java +++ b/infer/models/java/src/android/database/CursorWrapper.java @@ -1,6 +1,10 @@ /* -* Copyright (c) 2013- Facebook. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ package android.database; diff --git a/infer/models/java/src/android/database/sqlite/SQLiteConnectionPool.java b/infer/models/java/src/android/database/sqlite/SQLiteConnectionPool.java index a5cb954bb..ba26d989b 100644 --- a/infer/models/java/src/android/database/sqlite/SQLiteConnectionPool.java +++ b/infer/models/java/src/android/database/sqlite/SQLiteConnectionPool.java @@ -1,6 +1,10 @@ /* -* Copyright (c) 2013- Facebook. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ package android.database.sqlite; diff --git a/infer/models/java/src/android/database/sqlite/SQLiteCursor.java b/infer/models/java/src/android/database/sqlite/SQLiteCursor.java index 6a9364fb3..0a30ea020 100644 --- a/infer/models/java/src/android/database/sqlite/SQLiteCursor.java +++ b/infer/models/java/src/android/database/sqlite/SQLiteCursor.java @@ -1,6 +1,10 @@ /* -* Copyright (c) 2013- Facebook. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ package android.database.sqlite; diff --git a/infer/models/java/src/android/database/sqlite/SQLiteDatabase.java b/infer/models/java/src/android/database/sqlite/SQLiteDatabase.java index f1dd1fdda..58203634d 100644 --- a/infer/models/java/src/android/database/sqlite/SQLiteDatabase.java +++ b/infer/models/java/src/android/database/sqlite/SQLiteDatabase.java @@ -1,6 +1,10 @@ /* -* Copyright (c) 2013- Facebook. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ package android.database.sqlite; diff --git a/infer/models/java/src/android/database/sqlite/SQLiteDatabaseConfiguration.java b/infer/models/java/src/android/database/sqlite/SQLiteDatabaseConfiguration.java index b52c6d723..f4cb47232 100644 --- a/infer/models/java/src/android/database/sqlite/SQLiteDatabaseConfiguration.java +++ b/infer/models/java/src/android/database/sqlite/SQLiteDatabaseConfiguration.java @@ -1,6 +1,10 @@ /* -* Copyright (c) 2013- Facebook. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ package android.database.sqlite; diff --git a/infer/models/java/src/android/database/sqlite/SQLiteQueryBuilder.java b/infer/models/java/src/android/database/sqlite/SQLiteQueryBuilder.java index c824ada9e..2a6f1dd4a 100644 --- a/infer/models/java/src/android/database/sqlite/SQLiteQueryBuilder.java +++ b/infer/models/java/src/android/database/sqlite/SQLiteQueryBuilder.java @@ -1,6 +1,10 @@ /* -* Copyright (c) 2013- Facebook. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ package android.database.sqlite; diff --git a/infer/models/java/src/android/provider/MediaStore.java b/infer/models/java/src/android/provider/MediaStore.java index 3e304e91a..846ab84da 100644 --- a/infer/models/java/src/android/provider/MediaStore.java +++ b/infer/models/java/src/android/provider/MediaStore.java @@ -1,6 +1,10 @@ /* -* Copyright (c) 2013- Facebook. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ package android.provider; diff --git a/infer/models/java/src/com/facebook/infer/models/InferArray.java b/infer/models/java/src/com/facebook/infer/models/InferArray.java index 4fa88ae58..8250a34d3 100644 --- a/infer/models/java/src/com/facebook/infer/models/InferArray.java +++ b/infer/models/java/src/com/facebook/infer/models/InferArray.java @@ -1,7 +1,11 @@ /* -* Copyright (c) 2009-2013 Monoidics ltd. -* Copyright (c) 2013- Facebook. +* Copyright (c) 2009 - 2013 Monoidics ltd. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ package com.facebook.infer.models; diff --git a/infer/models/java/src/com/facebook/infer/models/InferBuiltins.java b/infer/models/java/src/com/facebook/infer/models/InferBuiltins.java index 165486774..4ac86f899 100644 --- a/infer/models/java/src/com/facebook/infer/models/InferBuiltins.java +++ b/infer/models/java/src/com/facebook/infer/models/InferBuiltins.java @@ -1,7 +1,11 @@ /* - * Copyright (c) 2009-2013 Monoidics ltd. - * Copyright (c) 2013- Facebook. - * All rights reserved. +* Copyright (c) 2009 - 2013 Monoidics ltd. +* Copyright (c) 2013 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ package com.facebook.infer.models; diff --git a/infer/models/java/src/com/facebook/infer/models/InferCloseables.java b/infer/models/java/src/com/facebook/infer/models/InferCloseables.java index bd582894e..6f21410b4 100644 --- a/infer/models/java/src/com/facebook/infer/models/InferCloseables.java +++ b/infer/models/java/src/com/facebook/infer/models/InferCloseables.java @@ -1,7 +1,11 @@ /* -* Copyright (c) 2009-2013 Monoidics ltd. -* Copyright (c) 2013- Facebook. +* Copyright (c) 2009 - 2013 Monoidics ltd. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ package com.facebook.infer.models; diff --git a/infer/models/java/src/com/facebook/infer/models/InferUndefined.java b/infer/models/java/src/com/facebook/infer/models/InferUndefined.java index 418de00b8..64dd8bc1f 100644 --- a/infer/models/java/src/com/facebook/infer/models/InferUndefined.java +++ b/infer/models/java/src/com/facebook/infer/models/InferUndefined.java @@ -1,7 +1,11 @@ /* -* Copyright (c) 2009-2013 Monoidics ltd. -* Copyright (c) 2013- Facebook. +* Copyright (c) 2009 - 2013 Monoidics ltd. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ package com.facebook.infer.models; diff --git a/infer/models/java/src/com/facebook/infer/models/InferUtils.java b/infer/models/java/src/com/facebook/infer/models/InferUtils.java index b0b87e8f2..e03d1aae8 100644 --- a/infer/models/java/src/com/facebook/infer/models/InferUtils.java +++ b/infer/models/java/src/com/facebook/infer/models/InferUtils.java @@ -1,4 +1,11 @@ -// Copyright (c) 2015-Present Facebook. All rights reserved. +/* +* Copyright (c) 2015 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. +*/ package com.facebook.infer.models; diff --git a/infer/models/java/src/com/fasterxml/jackson/core/JsonFactory.java b/infer/models/java/src/com/fasterxml/jackson/core/JsonFactory.java index 44d85a8af..195a4b423 100644 --- a/infer/models/java/src/com/fasterxml/jackson/core/JsonFactory.java +++ b/infer/models/java/src/com/fasterxml/jackson/core/JsonFactory.java @@ -1,6 +1,10 @@ /* -* Copyright (c) 2013- Facebook. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ package com.fasterxml.jackson.core; diff --git a/infer/models/java/src/com/fasterxml/jackson/core/JsonParser.java b/infer/models/java/src/com/fasterxml/jackson/core/JsonParser.java index c0923de35..537378600 100644 --- a/infer/models/java/src/com/fasterxml/jackson/core/JsonParser.java +++ b/infer/models/java/src/com/fasterxml/jackson/core/JsonParser.java @@ -1,6 +1,10 @@ /* -* Copyright (c) 2013- Facebook. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ package com.fasterxml.jackson.core; diff --git a/infer/models/java/src/com/fasterxml/jackson/core/json/UTF8StreamJsonParser.java b/infer/models/java/src/com/fasterxml/jackson/core/json/UTF8StreamJsonParser.java index 72045f803..ea59aa433 100644 --- a/infer/models/java/src/com/fasterxml/jackson/core/json/UTF8StreamJsonParser.java +++ b/infer/models/java/src/com/fasterxml/jackson/core/json/UTF8StreamJsonParser.java @@ -1,3 +1,12 @@ +/* +* Copyright (c) 2015 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. +*/ + package com.fasterxml.jackson.core.json; import com.facebook.infer.models.InferUndefined; diff --git a/infer/models/java/src/com/google/common/base/Preconditions.java b/infer/models/java/src/com/google/common/base/Preconditions.java index 5d2574ca8..720195402 100644 --- a/infer/models/java/src/com/google/common/base/Preconditions.java +++ b/infer/models/java/src/com/google/common/base/Preconditions.java @@ -1,6 +1,10 @@ /* -* Copyright (c) 2013- Facebook. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ package com.google.common.base; diff --git a/infer/models/java/src/com/google/common/collect/ImmutableList.java b/infer/models/java/src/com/google/common/collect/ImmutableList.java index 6249b01b5..7c778eaa5 100644 --- a/infer/models/java/src/com/google/common/collect/ImmutableList.java +++ b/infer/models/java/src/com/google/common/collect/ImmutableList.java @@ -1,6 +1,10 @@ /* -* Copyright (c) 2013- Facebook. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ package com.google.common.collect; diff --git a/infer/models/java/src/com/google/common/collect/Iterators.java b/infer/models/java/src/com/google/common/collect/Iterators.java index 1cb0fe71d..3a7be3b34 100644 --- a/infer/models/java/src/com/google/common/collect/Iterators.java +++ b/infer/models/java/src/com/google/common/collect/Iterators.java @@ -1,6 +1,10 @@ /* -* Copyright (c) 2013- Facebook. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ package com.google.common.collect; diff --git a/infer/models/java/src/com/google/common/io/Closeables.java b/infer/models/java/src/com/google/common/io/Closeables.java index ace07003f..a1871f8e1 100644 --- a/infer/models/java/src/com/google/common/io/Closeables.java +++ b/infer/models/java/src/com/google/common/io/Closeables.java @@ -1,6 +1,10 @@ /* -* Copyright (c) 2013- Facebook. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ package com.google.common.io; diff --git a/infer/models/java/src/com/squareup/okhttp/internal/StrictLineReader.java b/infer/models/java/src/com/squareup/okhttp/internal/StrictLineReader.java index 20da5e553..643f77f25 100644 --- a/infer/models/java/src/com/squareup/okhttp/internal/StrictLineReader.java +++ b/infer/models/java/src/com/squareup/okhttp/internal/StrictLineReader.java @@ -1,6 +1,10 @@ /* -* Copyright (c) 2013- Facebook. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ package com.squareup.okhttp.internal; diff --git a/infer/models/java/src/com/squareup/okhttp/internal/Util.java b/infer/models/java/src/com/squareup/okhttp/internal/Util.java index 4cfa7c679..acdd44028 100644 --- a/infer/models/java/src/com/squareup/okhttp/internal/Util.java +++ b/infer/models/java/src/com/squareup/okhttp/internal/Util.java @@ -1,6 +1,10 @@ /* -* Copyright (c) 2013- Facebook. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ package com.squareup.okhttp.internal; diff --git a/infer/models/java/src/dalvik/system/CloseGuard.java b/infer/models/java/src/dalvik/system/CloseGuard.java index 3c8f0b11b..bc6a25f48 100644 --- a/infer/models/java/src/dalvik/system/CloseGuard.java +++ b/infer/models/java/src/dalvik/system/CloseGuard.java @@ -1,6 +1,10 @@ /* -* Copyright (c) 2013- Facebook. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ package dalvik.system; diff --git a/infer/models/java/src/java/io/BufferedInputStream.java b/infer/models/java/src/java/io/BufferedInputStream.java index 3a83c92e4..65d9b48ad 100644 --- a/infer/models/java/src/java/io/BufferedInputStream.java +++ b/infer/models/java/src/java/io/BufferedInputStream.java @@ -1,6 +1,10 @@ /* -* Copyright (c) 2013- Facebook. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ package java.io; diff --git a/infer/models/java/src/java/io/BufferedOutputStream.java b/infer/models/java/src/java/io/BufferedOutputStream.java index dfbc6508e..b70c75aee 100644 --- a/infer/models/java/src/java/io/BufferedOutputStream.java +++ b/infer/models/java/src/java/io/BufferedOutputStream.java @@ -1,6 +1,10 @@ /* -* Copyright (c) 2013- Facebook. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ package java.io; diff --git a/infer/models/java/src/java/io/BufferedReader.java b/infer/models/java/src/java/io/BufferedReader.java index d73fb0ad6..3aa72ef44 100644 --- a/infer/models/java/src/java/io/BufferedReader.java +++ b/infer/models/java/src/java/io/BufferedReader.java @@ -1,6 +1,10 @@ /* -* Copyright (c) 2013- Facebook. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ package java.io; diff --git a/infer/models/java/src/java/io/BufferedWriter.java b/infer/models/java/src/java/io/BufferedWriter.java index 5aeaafe45..d358ed8de 100644 --- a/infer/models/java/src/java/io/BufferedWriter.java +++ b/infer/models/java/src/java/io/BufferedWriter.java @@ -1,6 +1,10 @@ /* -* Copyright (c) 2013- Facebook. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ package java.io; diff --git a/infer/models/java/src/java/io/ByteArrayInputStream.java b/infer/models/java/src/java/io/ByteArrayInputStream.java index fdf92d310..e219baebc 100644 --- a/infer/models/java/src/java/io/ByteArrayInputStream.java +++ b/infer/models/java/src/java/io/ByteArrayInputStream.java @@ -1,4 +1,11 @@ -// Copyright (c) 2015-Present Facebook. All rights reserved. +/* +* Copyright (c) 2015 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. +*/ package java.io; diff --git a/infer/models/java/src/java/io/ByteArrayOutputStream.java b/infer/models/java/src/java/io/ByteArrayOutputStream.java index d9ebdb5be..479a4ade6 100644 --- a/infer/models/java/src/java/io/ByteArrayOutputStream.java +++ b/infer/models/java/src/java/io/ByteArrayOutputStream.java @@ -1,4 +1,11 @@ -// Copyright (c) 2015-Present Facebook. All rights reserved. +/* +* Copyright (c) 2015 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. +*/ package java.io; diff --git a/infer/models/java/src/java/io/DataInputStream.java b/infer/models/java/src/java/io/DataInputStream.java index 37ec5da46..40e3b60c4 100644 --- a/infer/models/java/src/java/io/DataInputStream.java +++ b/infer/models/java/src/java/io/DataInputStream.java @@ -1,6 +1,10 @@ /* -* Copyright (c) 2013- Facebook. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ package java.io; diff --git a/infer/models/java/src/java/io/DataOutputStream.java b/infer/models/java/src/java/io/DataOutputStream.java index 050200de2..bfb123086 100644 --- a/infer/models/java/src/java/io/DataOutputStream.java +++ b/infer/models/java/src/java/io/DataOutputStream.java @@ -1,6 +1,10 @@ /* -* Copyright (c) 2013- Facebook. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ package java.io; diff --git a/infer/models/java/src/java/io/FileInputStream.java b/infer/models/java/src/java/io/FileInputStream.java index 6198dc14e..c8b2d8c2d 100644 --- a/infer/models/java/src/java/io/FileInputStream.java +++ b/infer/models/java/src/java/io/FileInputStream.java @@ -1,6 +1,10 @@ /* -* Copyright (c) 2013- Facebook. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ package java.io; diff --git a/infer/models/java/src/java/io/FileOutputStream.java b/infer/models/java/src/java/io/FileOutputStream.java index 35fda6621..b1281e9d4 100644 --- a/infer/models/java/src/java/io/FileOutputStream.java +++ b/infer/models/java/src/java/io/FileOutputStream.java @@ -1,6 +1,10 @@ /* -* Copyright (c) 2013- Facebook. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ package java.io; diff --git a/infer/models/java/src/java/io/FileReader.java b/infer/models/java/src/java/io/FileReader.java index 8cfba1c21..0cb060666 100644 --- a/infer/models/java/src/java/io/FileReader.java +++ b/infer/models/java/src/java/io/FileReader.java @@ -1,6 +1,10 @@ /* -* Copyright (c) 2013- Facebook. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ package java.io; diff --git a/infer/models/java/src/java/io/FileWriter.java b/infer/models/java/src/java/io/FileWriter.java index 28d8ff091..1787ab573 100644 --- a/infer/models/java/src/java/io/FileWriter.java +++ b/infer/models/java/src/java/io/FileWriter.java @@ -1,6 +1,10 @@ /* -* Copyright (c) 2013- Facebook. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ package java.io; diff --git a/infer/models/java/src/java/io/FilterInputStream.java b/infer/models/java/src/java/io/FilterInputStream.java index a91e90404..4a4f1b00f 100644 --- a/infer/models/java/src/java/io/FilterInputStream.java +++ b/infer/models/java/src/java/io/FilterInputStream.java @@ -1,6 +1,10 @@ /* -* Copyright (c) 2013- Facebook. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ package java.io; diff --git a/infer/models/java/src/java/io/FilterOutputStream.java b/infer/models/java/src/java/io/FilterOutputStream.java index 8eb235057..3823594d1 100644 --- a/infer/models/java/src/java/io/FilterOutputStream.java +++ b/infer/models/java/src/java/io/FilterOutputStream.java @@ -1,6 +1,10 @@ /* -* Copyright (c) 2013- Facebook. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ package java.io; diff --git a/infer/models/java/src/java/io/FilterReader.java b/infer/models/java/src/java/io/FilterReader.java index 6d6ff2dea..e946cb4f5 100644 --- a/infer/models/java/src/java/io/FilterReader.java +++ b/infer/models/java/src/java/io/FilterReader.java @@ -1,6 +1,10 @@ /* -* Copyright (c) 2013- Facebook. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ package java.io; diff --git a/infer/models/java/src/java/io/InputStream.java b/infer/models/java/src/java/io/InputStream.java index 629cd20f0..079c21062 100644 --- a/infer/models/java/src/java/io/InputStream.java +++ b/infer/models/java/src/java/io/InputStream.java @@ -1,6 +1,10 @@ /* -* Copyright (c) 2013- Facebook. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ package java.io; diff --git a/infer/models/java/src/java/io/InputStreamReader.java b/infer/models/java/src/java/io/InputStreamReader.java index 3898764fa..d9faa0123 100644 --- a/infer/models/java/src/java/io/InputStreamReader.java +++ b/infer/models/java/src/java/io/InputStreamReader.java @@ -1,6 +1,10 @@ /* -* Copyright (c) 2013- Facebook. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ package java.io; diff --git a/infer/models/java/src/java/io/ObjectInputStream.java b/infer/models/java/src/java/io/ObjectInputStream.java index d49e7b51f..406020bbe 100644 --- a/infer/models/java/src/java/io/ObjectInputStream.java +++ b/infer/models/java/src/java/io/ObjectInputStream.java @@ -1,6 +1,10 @@ /* -* Copyright (c) 2013- Facebook. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ package java.io; diff --git a/infer/models/java/src/java/io/ObjectOutputStream.java b/infer/models/java/src/java/io/ObjectOutputStream.java index f3596e223..c6120e61e 100644 --- a/infer/models/java/src/java/io/ObjectOutputStream.java +++ b/infer/models/java/src/java/io/ObjectOutputStream.java @@ -1,6 +1,10 @@ /* -* Copyright (c) 2013- Facebook. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ package java.io; diff --git a/infer/models/java/src/java/io/OutputStream.java b/infer/models/java/src/java/io/OutputStream.java index 14e9c3fd3..7191bdc7a 100644 --- a/infer/models/java/src/java/io/OutputStream.java +++ b/infer/models/java/src/java/io/OutputStream.java @@ -1,6 +1,10 @@ /* -* Copyright (c) 2013- Facebook. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ package java.io; diff --git a/infer/models/java/src/java/io/OutputStreamWriter.java b/infer/models/java/src/java/io/OutputStreamWriter.java index 49626ba3f..420b9112a 100644 --- a/infer/models/java/src/java/io/OutputStreamWriter.java +++ b/infer/models/java/src/java/io/OutputStreamWriter.java @@ -1,6 +1,10 @@ /* -* Copyright (c) 2013- Facebook. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ package java.io; diff --git a/infer/models/java/src/java/io/PipedInputStream.java b/infer/models/java/src/java/io/PipedInputStream.java index 2105132ef..28e81d51e 100644 --- a/infer/models/java/src/java/io/PipedInputStream.java +++ b/infer/models/java/src/java/io/PipedInputStream.java @@ -1,6 +1,10 @@ /* -* Copyright (c) 2013- Facebook. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ package java.io; diff --git a/infer/models/java/src/java/io/PipedOutputStream.java b/infer/models/java/src/java/io/PipedOutputStream.java index 5f29fa92b..33106955e 100644 --- a/infer/models/java/src/java/io/PipedOutputStream.java +++ b/infer/models/java/src/java/io/PipedOutputStream.java @@ -1,6 +1,10 @@ /* -* Copyright (c) 2013- Facebook. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ package java.io; diff --git a/infer/models/java/src/java/io/PipedReader.java b/infer/models/java/src/java/io/PipedReader.java index 3cab7aab9..e05bbbe1e 100644 --- a/infer/models/java/src/java/io/PipedReader.java +++ b/infer/models/java/src/java/io/PipedReader.java @@ -1,6 +1,10 @@ /* -* Copyright (c) 2013- Facebook. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ package java.io; diff --git a/infer/models/java/src/java/io/PipedWriter.java b/infer/models/java/src/java/io/PipedWriter.java index 2d3262482..289d6c6ba 100644 --- a/infer/models/java/src/java/io/PipedWriter.java +++ b/infer/models/java/src/java/io/PipedWriter.java @@ -1,6 +1,10 @@ /* -* Copyright (c) 2013- Facebook. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ package java.io; diff --git a/infer/models/java/src/java/io/PrintStream.java b/infer/models/java/src/java/io/PrintStream.java index 50825de33..0aceed751 100644 --- a/infer/models/java/src/java/io/PrintStream.java +++ b/infer/models/java/src/java/io/PrintStream.java @@ -1,6 +1,10 @@ /* -* Copyright (c) 2013- Facebook. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ package java.io; diff --git a/infer/models/java/src/java/io/PrintWriter.java b/infer/models/java/src/java/io/PrintWriter.java index 6eedff1da..2eb046e62 100644 --- a/infer/models/java/src/java/io/PrintWriter.java +++ b/infer/models/java/src/java/io/PrintWriter.java @@ -1,6 +1,10 @@ /* -* Copyright (c) 2013- Facebook. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ package java.io; diff --git a/infer/models/java/src/java/io/PushbackInputStream.java b/infer/models/java/src/java/io/PushbackInputStream.java index 772a06ad2..eed90cf44 100644 --- a/infer/models/java/src/java/io/PushbackInputStream.java +++ b/infer/models/java/src/java/io/PushbackInputStream.java @@ -1,6 +1,10 @@ /* -* Copyright (c) 2013- Facebook. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ package java.io; diff --git a/infer/models/java/src/java/io/PushbackReader.java b/infer/models/java/src/java/io/PushbackReader.java index a9a904291..283543ce5 100644 --- a/infer/models/java/src/java/io/PushbackReader.java +++ b/infer/models/java/src/java/io/PushbackReader.java @@ -1,6 +1,10 @@ /* -* Copyright (c) 2013- Facebook. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ package java.io; diff --git a/infer/models/java/src/java/io/RandomAccessFile.java b/infer/models/java/src/java/io/RandomAccessFile.java index 7c3e5241c..381b9d89f 100644 --- a/infer/models/java/src/java/io/RandomAccessFile.java +++ b/infer/models/java/src/java/io/RandomAccessFile.java @@ -1,6 +1,10 @@ /* -* Copyright (c) 2013- Facebook. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ package java.io; diff --git a/infer/models/java/src/java/io/Reader.java b/infer/models/java/src/java/io/Reader.java index eb9f9dceb..bfb7d45cd 100644 --- a/infer/models/java/src/java/io/Reader.java +++ b/infer/models/java/src/java/io/Reader.java @@ -1,6 +1,10 @@ /* -* Copyright (c) 2013- Facebook. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ package java.io; diff --git a/infer/models/java/src/java/io/StringReader.java b/infer/models/java/src/java/io/StringReader.java index 6614c29e1..c86cadb33 100644 --- a/infer/models/java/src/java/io/StringReader.java +++ b/infer/models/java/src/java/io/StringReader.java @@ -1,3 +1,12 @@ +/* +* Copyright (c) 2015 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. +*/ + package java.io; public class StringReader implements Closeable { diff --git a/infer/models/java/src/java/io/Writer.java b/infer/models/java/src/java/io/Writer.java index 32fd32a40..157f70683 100644 --- a/infer/models/java/src/java/io/Writer.java +++ b/infer/models/java/src/java/io/Writer.java @@ -1,6 +1,10 @@ /* -* Copyright (c) 2013- Facebook. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ package java.io; diff --git a/infer/models/java/src/java/lang/Class.java b/infer/models/java/src/java/lang/Class.java index 66620eba7..709438989 100644 --- a/infer/models/java/src/java/lang/Class.java +++ b/infer/models/java/src/java/lang/Class.java @@ -1,6 +1,10 @@ /* -* Copyright (c) 2013- Facebook. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ package java.lang; diff --git a/infer/models/java/src/java/lang/Integer.java b/infer/models/java/src/java/lang/Integer.java index 85ecca25f..cb110f49c 100644 --- a/infer/models/java/src/java/lang/Integer.java +++ b/infer/models/java/src/java/lang/Integer.java @@ -1,3 +1,12 @@ +/* +* Copyright (c) 2015 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. +*/ + package java.lang; public final class Integer { diff --git a/infer/models/java/src/java/lang/NullPointerException.java b/infer/models/java/src/java/lang/NullPointerException.java index 74ed1c7fc..0d8823d30 100644 --- a/infer/models/java/src/java/lang/NullPointerException.java +++ b/infer/models/java/src/java/lang/NullPointerException.java @@ -1,6 +1,10 @@ /* -* Copyright (c) 2013- Facebook. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ package java.lang; diff --git a/infer/models/java/src/java/lang/Object.java b/infer/models/java/src/java/lang/Object.java index e1b502c0b..852209644 100644 --- a/infer/models/java/src/java/lang/Object.java +++ b/infer/models/java/src/java/lang/Object.java @@ -1,6 +1,10 @@ /* -* Copyright (c) 2013- Facebook. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ package java.lang; diff --git a/infer/models/java/src/java/lang/Process.java b/infer/models/java/src/java/lang/Process.java index d3e2cd3b5..8204dabd0 100644 --- a/infer/models/java/src/java/lang/Process.java +++ b/infer/models/java/src/java/lang/Process.java @@ -1,6 +1,10 @@ /* -* Copyright (c) 2013- Facebook. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ package java.lang; diff --git a/infer/models/java/src/java/lang/ProcessManager.java b/infer/models/java/src/java/lang/ProcessManager.java index d758b0c2a..2aec5f683 100644 --- a/infer/models/java/src/java/lang/ProcessManager.java +++ b/infer/models/java/src/java/lang/ProcessManager.java @@ -1,6 +1,10 @@ /* -* Copyright (c) 2013- Facebook. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ package java.lang; diff --git a/infer/models/java/src/java/lang/Runtime.java b/infer/models/java/src/java/lang/Runtime.java index 42c20999a..ea33bca20 100644 --- a/infer/models/java/src/java/lang/Runtime.java +++ b/infer/models/java/src/java/lang/Runtime.java @@ -1,6 +1,10 @@ /* -* Copyright (c) 2013- Facebook. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ package java.lang; diff --git a/infer/models/java/src/java/lang/String.java b/infer/models/java/src/java/lang/String.java index 110f37613..6b5705211 100644 --- a/infer/models/java/src/java/lang/String.java +++ b/infer/models/java/src/java/lang/String.java @@ -1,6 +1,10 @@ /* -* Copyright (c) 2013- Facebook. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ package java.lang; diff --git a/infer/models/java/src/java/lang/System.java b/infer/models/java/src/java/lang/System.java index a50dfd0bd..69fbd28a9 100644 --- a/infer/models/java/src/java/lang/System.java +++ b/infer/models/java/src/java/lang/System.java @@ -1,6 +1,10 @@ /* -* Copyright (c) 2013- Facebook. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ package java.lang; diff --git a/infer/models/java/src/java/lang/Thread.java b/infer/models/java/src/java/lang/Thread.java index deca2a9a6..5311c4bbf 100644 --- a/infer/models/java/src/java/lang/Thread.java +++ b/infer/models/java/src/java/lang/Thread.java @@ -1,6 +1,10 @@ /* -* Copyright (c) 2013- Facebook. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ package java.lang; diff --git a/infer/models/java/src/java/lang/reflect/Array.java b/infer/models/java/src/java/lang/reflect/Array.java index c3453aa35..7c28bd5a6 100644 --- a/infer/models/java/src/java/lang/reflect/Array.java +++ b/infer/models/java/src/java/lang/reflect/Array.java @@ -1,6 +1,10 @@ /* -* Copyright (c) 2013- Facebook. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ package java.lang.reflect; diff --git a/infer/models/java/src/java/net/HttpURLConnection.java b/infer/models/java/src/java/net/HttpURLConnection.java index 795d21d74..ecff6215d 100644 --- a/infer/models/java/src/java/net/HttpURLConnection.java +++ b/infer/models/java/src/java/net/HttpURLConnection.java @@ -1,6 +1,10 @@ /* -* Copyright (c) 2013- Facebook. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ package java.net; diff --git a/infer/models/java/src/java/net/JarURLConnection.java b/infer/models/java/src/java/net/JarURLConnection.java index 2ff84ef43..4945b9b93 100644 --- a/infer/models/java/src/java/net/JarURLConnection.java +++ b/infer/models/java/src/java/net/JarURLConnection.java @@ -1,6 +1,10 @@ /* -* Copyright (c) 2013- Facebook. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ package java.net; diff --git a/infer/models/java/src/java/net/PlainSocketImpl.java b/infer/models/java/src/java/net/PlainSocketImpl.java index a7d9f5709..840efe694 100644 --- a/infer/models/java/src/java/net/PlainSocketImpl.java +++ b/infer/models/java/src/java/net/PlainSocketImpl.java @@ -1,6 +1,10 @@ /* -* Copyright (c) 2013- Facebook. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ package java.net; diff --git a/infer/models/java/src/java/net/ServerSocket.java b/infer/models/java/src/java/net/ServerSocket.java index c848d3dfa..12a300fdf 100644 --- a/infer/models/java/src/java/net/ServerSocket.java +++ b/infer/models/java/src/java/net/ServerSocket.java @@ -1,6 +1,10 @@ /* -* Copyright (c) 2013- Facebook. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ package java.net; diff --git a/infer/models/java/src/java/net/Socket.java b/infer/models/java/src/java/net/Socket.java index d94d7759e..ac22caaf3 100644 --- a/infer/models/java/src/java/net/Socket.java +++ b/infer/models/java/src/java/net/Socket.java @@ -1,6 +1,10 @@ /* -* Copyright (c) 2013- Facebook. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ package java.net; diff --git a/infer/models/java/src/java/net/URL.java b/infer/models/java/src/java/net/URL.java index ba121fff8..a5efd916d 100644 --- a/infer/models/java/src/java/net/URL.java +++ b/infer/models/java/src/java/net/URL.java @@ -1,6 +1,10 @@ /* -* Copyright (c) 2013- Facebook. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ package java.net; diff --git a/infer/models/java/src/java/net/URLConnection.java b/infer/models/java/src/java/net/URLConnection.java index e0cfc1e11..e9e6d9c59 100644 --- a/infer/models/java/src/java/net/URLConnection.java +++ b/infer/models/java/src/java/net/URLConnection.java @@ -1,6 +1,10 @@ /* -* Copyright (c) 2013- Facebook. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ package java.net; diff --git a/infer/models/java/src/java/nio/FileChannelImpl.java b/infer/models/java/src/java/nio/FileChannelImpl.java index bf907c453..2c1015981 100644 --- a/infer/models/java/src/java/nio/FileChannelImpl.java +++ b/infer/models/java/src/java/nio/FileChannelImpl.java @@ -1,6 +1,10 @@ /* -* Copyright (c) 2013- Facebook. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ package java.nio; diff --git a/infer/models/java/src/java/nio/channels/FileChannel.java b/infer/models/java/src/java/nio/channels/FileChannel.java index 67358823d..6e5cf7791 100644 --- a/infer/models/java/src/java/nio/channels/FileChannel.java +++ b/infer/models/java/src/java/nio/channels/FileChannel.java @@ -1,6 +1,10 @@ /* -* Copyright (c) 2013- Facebook. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ package java.nio.channels; diff --git a/infer/models/java/src/java/nio/channels/spi/AbstractInterruptibleChannel.java b/infer/models/java/src/java/nio/channels/spi/AbstractInterruptibleChannel.java index 0ed478aaf..5ded0d1f0 100644 --- a/infer/models/java/src/java/nio/channels/spi/AbstractInterruptibleChannel.java +++ b/infer/models/java/src/java/nio/channels/spi/AbstractInterruptibleChannel.java @@ -1,6 +1,10 @@ /* -* Copyright (c) 2013- Facebook. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ package java.nio.channels.spi; diff --git a/infer/models/java/src/java/security/DigestInputStream.java b/infer/models/java/src/java/security/DigestInputStream.java index 109ccc5b7..6d9433cb5 100644 --- a/infer/models/java/src/java/security/DigestInputStream.java +++ b/infer/models/java/src/java/security/DigestInputStream.java @@ -1,6 +1,10 @@ /* -* Copyright (c) 2013- Facebook. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ package java.security; diff --git a/infer/models/java/src/java/security/DigestOutputStream.java b/infer/models/java/src/java/security/DigestOutputStream.java index 3517ec596..55310c0e5 100644 --- a/infer/models/java/src/java/security/DigestOutputStream.java +++ b/infer/models/java/src/java/security/DigestOutputStream.java @@ -1,6 +1,10 @@ /* -* Copyright (c) 2013- Facebook. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ package java.security; diff --git a/infer/models/java/src/java/util/HashMap.java b/infer/models/java/src/java/util/HashMap.java index 4999f96a3..455b2b6cc 100644 --- a/infer/models/java/src/java/util/HashMap.java +++ b/infer/models/java/src/java/util/HashMap.java @@ -1,6 +1,10 @@ /* -* Copyright (c) 2013- Facebook. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ package java.util; diff --git a/infer/models/java/src/java/util/Properties.java b/infer/models/java/src/java/util/Properties.java index 5e1a7bb72..17bc15a16 100644 --- a/infer/models/java/src/java/util/Properties.java +++ b/infer/models/java/src/java/util/Properties.java @@ -1,6 +1,10 @@ /* -* Copyright (c) 2013- Facebook. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ package java.util; diff --git a/infer/models/java/src/java/util/Scanner.java b/infer/models/java/src/java/util/Scanner.java index eeeb72e43..ff4c5b6b4 100644 --- a/infer/models/java/src/java/util/Scanner.java +++ b/infer/models/java/src/java/util/Scanner.java @@ -1,6 +1,10 @@ /* -* Copyright (c) 2013- Facebook. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ package java.util; diff --git a/infer/models/java/src/java/util/Vector.java b/infer/models/java/src/java/util/Vector.java index 276d70c2b..59c706ead 100644 --- a/infer/models/java/src/java/util/Vector.java +++ b/infer/models/java/src/java/util/Vector.java @@ -1,6 +1,10 @@ /* -* Copyright (c) 2013- Facebook. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ package java.util; diff --git a/infer/models/java/src/java/util/jar/JarFile.java b/infer/models/java/src/java/util/jar/JarFile.java index 109c33018..98840ec41 100644 --- a/infer/models/java/src/java/util/jar/JarFile.java +++ b/infer/models/java/src/java/util/jar/JarFile.java @@ -1,6 +1,10 @@ /* -* Copyright (c) 2013- Facebook. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ package java.util.jar; diff --git a/infer/models/java/src/java/util/jar/JarInputStream.java b/infer/models/java/src/java/util/jar/JarInputStream.java index 88e9a5bb6..108ca09be 100644 --- a/infer/models/java/src/java/util/jar/JarInputStream.java +++ b/infer/models/java/src/java/util/jar/JarInputStream.java @@ -1,6 +1,10 @@ /* -* Copyright (c) 2013- Facebook. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ package java.util.jar; diff --git a/infer/models/java/src/java/util/jar/JarOutputStream.java b/infer/models/java/src/java/util/jar/JarOutputStream.java index b73e119ee..57362c6aa 100644 --- a/infer/models/java/src/java/util/jar/JarOutputStream.java +++ b/infer/models/java/src/java/util/jar/JarOutputStream.java @@ -1,6 +1,10 @@ /* -* Copyright (c) 2013- Facebook. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ package java.util.jar; diff --git a/infer/models/java/src/java/util/zip/CheckedInputStream.java b/infer/models/java/src/java/util/zip/CheckedInputStream.java index 17c5cf23a..9545c9900 100644 --- a/infer/models/java/src/java/util/zip/CheckedInputStream.java +++ b/infer/models/java/src/java/util/zip/CheckedInputStream.java @@ -1,6 +1,10 @@ /* -* Copyright (c) 2013- Facebook. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ package java.util.zip; diff --git a/infer/models/java/src/java/util/zip/CheckedOutputStream.java b/infer/models/java/src/java/util/zip/CheckedOutputStream.java index cec9ae1f3..8a0851228 100644 --- a/infer/models/java/src/java/util/zip/CheckedOutputStream.java +++ b/infer/models/java/src/java/util/zip/CheckedOutputStream.java @@ -1,6 +1,10 @@ /* -* Copyright (c) 2013- Facebook. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ package java.util.zip; diff --git a/infer/models/java/src/java/util/zip/DeflaterInputStream.java b/infer/models/java/src/java/util/zip/DeflaterInputStream.java index 86625daa3..5f1d55565 100644 --- a/infer/models/java/src/java/util/zip/DeflaterInputStream.java +++ b/infer/models/java/src/java/util/zip/DeflaterInputStream.java @@ -1,6 +1,10 @@ /* -* Copyright (c) 2013- Facebook. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ package java.util.zip; diff --git a/infer/models/java/src/java/util/zip/DeflaterOutputStream.java b/infer/models/java/src/java/util/zip/DeflaterOutputStream.java index 1f0847d2f..559295824 100644 --- a/infer/models/java/src/java/util/zip/DeflaterOutputStream.java +++ b/infer/models/java/src/java/util/zip/DeflaterOutputStream.java @@ -1,6 +1,10 @@ /* -* Copyright (c) 2013- Facebook. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ package java.util.zip; diff --git a/infer/models/java/src/java/util/zip/GZIPInputStream.java b/infer/models/java/src/java/util/zip/GZIPInputStream.java index 2d1cf88c8..42b9b6c91 100644 --- a/infer/models/java/src/java/util/zip/GZIPInputStream.java +++ b/infer/models/java/src/java/util/zip/GZIPInputStream.java @@ -1,6 +1,10 @@ /* -* Copyright (c) 2013- Facebook. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ package java.util.zip; diff --git a/infer/models/java/src/java/util/zip/GZIPOutputStream.java b/infer/models/java/src/java/util/zip/GZIPOutputStream.java index 85f7eaf32..d91943d76 100644 --- a/infer/models/java/src/java/util/zip/GZIPOutputStream.java +++ b/infer/models/java/src/java/util/zip/GZIPOutputStream.java @@ -1,6 +1,10 @@ /* -* Copyright (c) 2013- Facebook. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ package java.util.zip; diff --git a/infer/models/java/src/java/util/zip/InflaterInputStream.java b/infer/models/java/src/java/util/zip/InflaterInputStream.java index d86efc972..783bfded7 100644 --- a/infer/models/java/src/java/util/zip/InflaterInputStream.java +++ b/infer/models/java/src/java/util/zip/InflaterInputStream.java @@ -1,6 +1,10 @@ /* -* Copyright (c) 2013- Facebook. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ package java.util.zip; diff --git a/infer/models/java/src/java/util/zip/InflaterOutputStream.java b/infer/models/java/src/java/util/zip/InflaterOutputStream.java index 6948f9fbd..a9e7384cc 100644 --- a/infer/models/java/src/java/util/zip/InflaterOutputStream.java +++ b/infer/models/java/src/java/util/zip/InflaterOutputStream.java @@ -1,6 +1,10 @@ /* -* Copyright (c) 2013- Facebook. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ package java.util.zip; diff --git a/infer/models/java/src/java/util/zip/ZipFile.java b/infer/models/java/src/java/util/zip/ZipFile.java index e102c8281..7c1ef25b1 100644 --- a/infer/models/java/src/java/util/zip/ZipFile.java +++ b/infer/models/java/src/java/util/zip/ZipFile.java @@ -1,6 +1,10 @@ /* -* Copyright (c) 2013- Facebook. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ package java.util.zip; diff --git a/infer/models/java/src/java/util/zip/ZipInputStream.java b/infer/models/java/src/java/util/zip/ZipInputStream.java index 2713c55fe..5f740796b 100644 --- a/infer/models/java/src/java/util/zip/ZipInputStream.java +++ b/infer/models/java/src/java/util/zip/ZipInputStream.java @@ -1,6 +1,10 @@ /* -* Copyright (c) 2013- Facebook. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ package java.util.zip; diff --git a/infer/models/java/src/java/util/zip/ZipOutputStream.java b/infer/models/java/src/java/util/zip/ZipOutputStream.java index ac0982d8a..271c734db 100644 --- a/infer/models/java/src/java/util/zip/ZipOutputStream.java +++ b/infer/models/java/src/java/util/zip/ZipOutputStream.java @@ -1,6 +1,10 @@ /* -* Copyright (c) 2013- Facebook. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ package java.util.zip; diff --git a/infer/models/java/src/javax/crypto/CipherInputStream.java b/infer/models/java/src/javax/crypto/CipherInputStream.java index c7be3f866..1b82d25a0 100644 --- a/infer/models/java/src/javax/crypto/CipherInputStream.java +++ b/infer/models/java/src/javax/crypto/CipherInputStream.java @@ -1,6 +1,10 @@ /* -* Copyright (c) 2013- Facebook. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ package javax.crypto; diff --git a/infer/models/java/src/javax/crypto/CipherOutputStream.java b/infer/models/java/src/javax/crypto/CipherOutputStream.java index a1987eb6d..e6e69effb 100644 --- a/infer/models/java/src/javax/crypto/CipherOutputStream.java +++ b/infer/models/java/src/javax/crypto/CipherOutputStream.java @@ -1,6 +1,10 @@ /* -* Copyright (c) 2013- Facebook. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ package javax.crypto; diff --git a/infer/models/java/src/javax/net/ssl/HttpsURLConnection.java b/infer/models/java/src/javax/net/ssl/HttpsURLConnection.java index 7be6f7214..eb06b2830 100644 --- a/infer/models/java/src/javax/net/ssl/HttpsURLConnection.java +++ b/infer/models/java/src/javax/net/ssl/HttpsURLConnection.java @@ -1,6 +1,10 @@ /* -* Copyright (c) 2013- Facebook. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ package javax.net.ssl; diff --git a/infer/models/java/src/junit/framework/Assert.java b/infer/models/java/src/junit/framework/Assert.java index 1bf1b5510..f4abe950c 100644 --- a/infer/models/java/src/junit/framework/Assert.java +++ b/infer/models/java/src/junit/framework/Assert.java @@ -1,6 +1,10 @@ /* -* Copyright (c) 2013- Facebook. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ package junit.framework; diff --git a/infer/models/objc/src/CoreFoundation/CFArray.c b/infer/models/objc/src/CoreFoundation/CFArray.c index df8dd3387..97deb0e12 100644 --- a/infer/models/objc/src/CoreFoundation/CFArray.c +++ b/infer/models/objc/src/CoreFoundation/CFArray.c @@ -1,3 +1,12 @@ +/* +* Copyright (c) 2015 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. +*/ + #import #import diff --git a/infer/models/objc/src/CoreFoundation/CFBinaryHeap.c b/infer/models/objc/src/CoreFoundation/CFBinaryHeap.c index 7543a1d32..754479ace 100644 --- a/infer/models/objc/src/CoreFoundation/CFBinaryHeap.c +++ b/infer/models/objc/src/CoreFoundation/CFBinaryHeap.c @@ -1,3 +1,12 @@ +/* +* Copyright (c) 2015 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. +*/ + #import CFBinaryHeapRef __cf_alloc(CFBinaryHeapRef); diff --git a/infer/models/objc/src/CoreFoundation/CFBitVector.c b/infer/models/objc/src/CoreFoundation/CFBitVector.c index 7440f49ca..b9e638eca 100644 --- a/infer/models/objc/src/CoreFoundation/CFBitVector.c +++ b/infer/models/objc/src/CoreFoundation/CFBitVector.c @@ -1,3 +1,12 @@ +/* +* Copyright (c) 2015 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. +*/ + #import CFBitVectorRef __cf_alloc(CFBitVectorRef); diff --git a/infer/models/objc/src/CoreFoundation/CFDate.c b/infer/models/objc/src/CoreFoundation/CFDate.c index 3969edb81..fd586f803 100644 --- a/infer/models/objc/src/CoreFoundation/CFDate.c +++ b/infer/models/objc/src/CoreFoundation/CFDate.c @@ -1,3 +1,12 @@ +/* +* Copyright (c) 2015 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. +*/ + #import CFDateRef __cf_alloc(CFDateRef); diff --git a/infer/models/objc/src/CoreFoundation/CFDictionary.c b/infer/models/objc/src/CoreFoundation/CFDictionary.c index c7c8f3d03..d77a3b672 100644 --- a/infer/models/objc/src/CoreFoundation/CFDictionary.c +++ b/infer/models/objc/src/CoreFoundation/CFDictionary.c @@ -1,3 +1,13 @@ +/* +* Copyright (c) 2015 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. +*/ + + #import #import #import diff --git a/infer/models/objc/src/CoreFoundation/CFError.c b/infer/models/objc/src/CoreFoundation/CFError.c index bfd1432b7..4d5f06134 100644 --- a/infer/models/objc/src/CoreFoundation/CFError.c +++ b/infer/models/objc/src/CoreFoundation/CFError.c @@ -1,3 +1,12 @@ +/* +* Copyright (c) 2015 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. +*/ + #import CFErrorRef __cf_alloc(CFErrorRef); diff --git a/infer/models/objc/src/CoreFoundation/CFHTTPMessage.c b/infer/models/objc/src/CoreFoundation/CFHTTPMessage.c index c058717c9..ff9ec1c32 100644 --- a/infer/models/objc/src/CoreFoundation/CFHTTPMessage.c +++ b/infer/models/objc/src/CoreFoundation/CFHTTPMessage.c @@ -1,3 +1,12 @@ +/* +* Copyright (c) 2015 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. +*/ + #import CFHTTPMessageRef __cf_alloc(CFHTTPMessageRef); diff --git a/infer/models/objc/src/CoreFoundation/CFLocale.c b/infer/models/objc/src/CoreFoundation/CFLocale.c index bf9a5b44c..942d267c7 100644 --- a/infer/models/objc/src/CoreFoundation/CFLocale.c +++ b/infer/models/objc/src/CoreFoundation/CFLocale.c @@ -1,3 +1,12 @@ +/* +* Copyright (c) 2015 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. +*/ + #import CFLocaleRef __cf_alloc(CFLocaleRef); diff --git a/infer/models/objc/src/CoreFoundation/CFMutableArray.c b/infer/models/objc/src/CoreFoundation/CFMutableArray.c index 8f4ac9011..e462f1ce7 100644 --- a/infer/models/objc/src/CoreFoundation/CFMutableArray.c +++ b/infer/models/objc/src/CoreFoundation/CFMutableArray.c @@ -1,3 +1,12 @@ +/* +* Copyright (c) 2015 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. +*/ + #import CFMutableArrayRef __cf_alloc(CFMutableArrayRef); diff --git a/infer/models/objc/src/CoreFoundation/CFMutableAttributedString.c b/infer/models/objc/src/CoreFoundation/CFMutableAttributedString.c index d0c28b061..b5b61a0ee 100644 --- a/infer/models/objc/src/CoreFoundation/CFMutableAttributedString.c +++ b/infer/models/objc/src/CoreFoundation/CFMutableAttributedString.c @@ -1,3 +1,12 @@ +/* +* Copyright (c) 2015 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. +*/ + #import CFMutableAttributedStringRef __cf_non_null_alloc(CFMutableAttributedStringRef); diff --git a/infer/models/objc/src/CoreFoundation/CFMutableDictionary.c b/infer/models/objc/src/CoreFoundation/CFMutableDictionary.c index 5ba7765f3..a587649fd 100644 --- a/infer/models/objc/src/CoreFoundation/CFMutableDictionary.c +++ b/infer/models/objc/src/CoreFoundation/CFMutableDictionary.c @@ -1,3 +1,13 @@ +/* +* Copyright (c) 2015 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. +*/ + + #import #import diff --git a/infer/models/objc/src/CoreFoundation/CFMutableSet.c b/infer/models/objc/src/CoreFoundation/CFMutableSet.c index 3c10a7864..4ddf4ac1e 100644 --- a/infer/models/objc/src/CoreFoundation/CFMutableSet.c +++ b/infer/models/objc/src/CoreFoundation/CFMutableSet.c @@ -1,3 +1,13 @@ +/* +* Copyright (c) 2015 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. +*/ + + #import CFMutableSetRef __cf_alloc(CFMutableSetRef); diff --git a/infer/models/objc/src/CoreFoundation/CFNumber.c b/infer/models/objc/src/CoreFoundation/CFNumber.c index 187aa3e03..39e2d30f4 100644 --- a/infer/models/objc/src/CoreFoundation/CFNumber.c +++ b/infer/models/objc/src/CoreFoundation/CFNumber.c @@ -1,3 +1,12 @@ +/* +* Copyright (c) 2015 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. +*/ + #import CFNumberRef __cf_alloc(CFNumberRef); diff --git a/infer/models/objc/src/CoreFoundation/CFPreferences.c b/infer/models/objc/src/CoreFoundation/CFPreferences.c index f67fbf5c1..05a32bc91 100644 --- a/infer/models/objc/src/CoreFoundation/CFPreferences.c +++ b/infer/models/objc/src/CoreFoundation/CFPreferences.c @@ -1,3 +1,12 @@ +/* +* Copyright (c) 2015 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. +*/ + #import CFDictionaryRef __cf_alloc(CFDictionaryRef); diff --git a/infer/models/objc/src/CoreFoundation/CFRunLoop.c b/infer/models/objc/src/CoreFoundation/CFRunLoop.c index 092ca6a70..6762ef2f9 100644 --- a/infer/models/objc/src/CoreFoundation/CFRunLoop.c +++ b/infer/models/objc/src/CoreFoundation/CFRunLoop.c @@ -1,3 +1,12 @@ +/* +* Copyright (c) 2015 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. +*/ + #import CFRunLoopSourceRef __cf_alloc(CFRunLoopSourceRef); diff --git a/infer/models/objc/src/CoreFoundation/CFRunLoopObserver.c b/infer/models/objc/src/CoreFoundation/CFRunLoopObserver.c index f330f8aef..c67e73a6a 100644 --- a/infer/models/objc/src/CoreFoundation/CFRunLoopObserver.c +++ b/infer/models/objc/src/CoreFoundation/CFRunLoopObserver.c @@ -1,3 +1,12 @@ +/* +* Copyright (c) 2015 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. +*/ + #import CFRunLoopObserverRef __cf_alloc(CFRunLoopObserverRef); diff --git a/infer/models/objc/src/CoreFoundation/CFSocket.c b/infer/models/objc/src/CoreFoundation/CFSocket.c index a62bb00b2..455ad6719 100644 --- a/infer/models/objc/src/CoreFoundation/CFSocket.c +++ b/infer/models/objc/src/CoreFoundation/CFSocket.c @@ -1,3 +1,12 @@ +/* +* Copyright (c) 2015 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. +*/ + #import CFSocketRef __cf_alloc(CFSocketRef); diff --git a/infer/models/objc/src/CoreFoundation/CFString.c b/infer/models/objc/src/CoreFoundation/CFString.c index 4ce090bb8..b9ad8c15a 100644 --- a/infer/models/objc/src/CoreFoundation/CFString.c +++ b/infer/models/objc/src/CoreFoundation/CFString.c @@ -1,3 +1,12 @@ +/* +* Copyright (c) 2015 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. +*/ + #import #import diff --git a/infer/models/objc/src/CoreFoundation/CFStringTokenizer.c b/infer/models/objc/src/CoreFoundation/CFStringTokenizer.c index 5ce5accdb..cde25593e 100644 --- a/infer/models/objc/src/CoreFoundation/CFStringTokenizer.c +++ b/infer/models/objc/src/CoreFoundation/CFStringTokenizer.c @@ -1,3 +1,12 @@ +/* +* Copyright (c) 2015 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. +*/ + #import CFStringTokenizerRef __cf_alloc(CFStringTokenizerRef); diff --git a/infer/models/objc/src/CoreFoundation/CFType.c b/infer/models/objc/src/CoreFoundation/CFType.c index 11f08b5f5..203ea897f 100644 --- a/infer/models/objc/src/CoreFoundation/CFType.c +++ b/infer/models/objc/src/CoreFoundation/CFType.c @@ -1,3 +1,12 @@ +/* +* Copyright (c) 2015 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. +*/ + #import CFTypeRef CFMakeCollectable ( CFTypeRef cf ) { diff --git a/infer/models/objc/src/CoreFoundation/CFUUID.c b/infer/models/objc/src/CoreFoundation/CFUUID.c index 14a4206d1..4bb05ff3f 100644 --- a/infer/models/objc/src/CoreFoundation/CFUUID.c +++ b/infer/models/objc/src/CoreFoundation/CFUUID.c @@ -1,3 +1,12 @@ +/* +* Copyright (c) 2015 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. +*/ + #import CFUUIDRef __cf_alloc(CFUUIDRef); diff --git a/infer/models/objc/src/CoreFoundation/CTFont.c b/infer/models/objc/src/CoreFoundation/CTFont.c index e60114071..46837c7f0 100644 --- a/infer/models/objc/src/CoreFoundation/CTFont.c +++ b/infer/models/objc/src/CoreFoundation/CTFont.c @@ -1,3 +1,12 @@ +/* +* Copyright (c) 2015 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. +*/ + #import CTFontRef __cf_alloc(CTFontRef); diff --git a/infer/models/objc/src/CoreFoundation/CTFramesetter.c b/infer/models/objc/src/CoreFoundation/CTFramesetter.c index 4622fc5f4..7cfe876de 100644 --- a/infer/models/objc/src/CoreFoundation/CTFramesetter.c +++ b/infer/models/objc/src/CoreFoundation/CTFramesetter.c @@ -1,3 +1,12 @@ +/* +* Copyright (c) 2015 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. +*/ + #import CTFramesetterRef __cf_alloc(CTFramesetterRef); diff --git a/infer/models/objc/src/CoreFoundation/CTParagraphStyle.c b/infer/models/objc/src/CoreFoundation/CTParagraphStyle.c index 0f2951376..6fe306b9b 100644 --- a/infer/models/objc/src/CoreFoundation/CTParagraphStyle.c +++ b/infer/models/objc/src/CoreFoundation/CTParagraphStyle.c @@ -1,3 +1,12 @@ +/* +* Copyright (c) 2015 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. +*/ + #import #import diff --git a/infer/models/objc/src/CoreFoundation/SCNetworkReachability.c b/infer/models/objc/src/CoreFoundation/SCNetworkReachability.c index f8664c048..be5da9b12 100644 --- a/infer/models/objc/src/CoreFoundation/SCNetworkReachability.c +++ b/infer/models/objc/src/CoreFoundation/SCNetworkReachability.c @@ -1,3 +1,12 @@ +/* +* Copyright (c) 2015 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. +*/ + #import #import "SystemConfiguration/SCNetworkReachability.h" diff --git a/infer/models/objc/src/CoreFoundation/SecCertificate.c b/infer/models/objc/src/CoreFoundation/SecCertificate.c index e48fc420b..4d5086e4b 100644 --- a/infer/models/objc/src/CoreFoundation/SecCertificate.c +++ b/infer/models/objc/src/CoreFoundation/SecCertificate.c @@ -1,3 +1,12 @@ +/* +* Copyright (c) 2015 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. +*/ + #import SecCertificateRef __cf_alloc(SecCertificateRef); diff --git a/infer/models/objc/src/CoreFoundation/SecKey.c b/infer/models/objc/src/CoreFoundation/SecKey.c index 6b6c844f6..708f79201 100644 --- a/infer/models/objc/src/CoreFoundation/SecKey.c +++ b/infer/models/objc/src/CoreFoundation/SecKey.c @@ -1,3 +1,12 @@ +/* +* Copyright (c) 2015 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. +*/ + #import #import diff --git a/infer/models/objc/src/CoreGraphics/CGColor.c b/infer/models/objc/src/CoreGraphics/CGColor.c index 8d6f9fc98..c0304087a 100644 --- a/infer/models/objc/src/CoreGraphics/CGColor.c +++ b/infer/models/objc/src/CoreGraphics/CGColor.c @@ -1,3 +1,12 @@ +/* +* Copyright (c) 2015 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. +*/ + #import CGColorRef __cf_non_null_alloc(CGColorRef); diff --git a/infer/models/objc/src/CoreGraphics/CGColorSpace.c b/infer/models/objc/src/CoreGraphics/CGColorSpace.c index ac7bff85c..a0e4f6795 100644 --- a/infer/models/objc/src/CoreGraphics/CGColorSpace.c +++ b/infer/models/objc/src/CoreGraphics/CGColorSpace.c @@ -1,3 +1,12 @@ +/* +* Copyright (c) 2015 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. +*/ + #import void __objc_release_cf(CGColorSpaceRef); diff --git a/infer/models/objc/src/CoreGraphics/CGContext.c b/infer/models/objc/src/CoreGraphics/CGContext.c index 6a47096c0..bd777383c 100644 --- a/infer/models/objc/src/CoreGraphics/CGContext.c +++ b/infer/models/objc/src/CoreGraphics/CGContext.c @@ -1,3 +1,12 @@ +/* +* Copyright (c) 2015 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. +*/ + #import #import #import diff --git a/infer/models/objc/src/CoreGraphics/CGDataConsumer.c b/infer/models/objc/src/CoreGraphics/CGDataConsumer.c index 5222dec14..b7288fb4d 100644 --- a/infer/models/objc/src/CoreGraphics/CGDataConsumer.c +++ b/infer/models/objc/src/CoreGraphics/CGDataConsumer.c @@ -1,3 +1,12 @@ +/* +* Copyright (c) 2015 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. +*/ + #import void __objc_release_cf(CGDataConsumerRef); diff --git a/infer/models/objc/src/CoreGraphics/CGDataProvider.c b/infer/models/objc/src/CoreGraphics/CGDataProvider.c index 9caf17bc3..aaea9b8c0 100644 --- a/infer/models/objc/src/CoreGraphics/CGDataProvider.c +++ b/infer/models/objc/src/CoreGraphics/CGDataProvider.c @@ -1,3 +1,12 @@ +/* +* Copyright (c) 2015 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. +*/ + #import void __objc_release_cf(CGDataProviderRef); diff --git a/infer/models/objc/src/CoreGraphics/CGFont.c b/infer/models/objc/src/CoreGraphics/CGFont.c index 3643bddce..1f661cf08 100644 --- a/infer/models/objc/src/CoreGraphics/CGFont.c +++ b/infer/models/objc/src/CoreGraphics/CGFont.c @@ -1,3 +1,12 @@ +/* +* Copyright (c) 2015 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. +*/ + #import void __objc_release_cf(CGFontRef); diff --git a/infer/models/objc/src/CoreGraphics/CGFunction.c b/infer/models/objc/src/CoreGraphics/CGFunction.c index d1b74be32..2f24db7f0 100644 --- a/infer/models/objc/src/CoreGraphics/CGFunction.c +++ b/infer/models/objc/src/CoreGraphics/CGFunction.c @@ -1,3 +1,12 @@ +/* +* Copyright (c) 2015 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. +*/ + #import void __objc_release_cf(CGFunctionRef); diff --git a/infer/models/objc/src/CoreGraphics/CGGradient.c b/infer/models/objc/src/CoreGraphics/CGGradient.c index c2b45ccd3..3635be65a 100644 --- a/infer/models/objc/src/CoreGraphics/CGGradient.c +++ b/infer/models/objc/src/CoreGraphics/CGGradient.c @@ -1,3 +1,12 @@ +/* +* Copyright (c) 2015 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. +*/ + #import void __objc_release_cf(CGGradientRef); diff --git a/infer/models/objc/src/CoreGraphics/CGImage.c b/infer/models/objc/src/CoreGraphics/CGImage.c index b0444d86a..89b93b7f8 100644 --- a/infer/models/objc/src/CoreGraphics/CGImage.c +++ b/infer/models/objc/src/CoreGraphics/CGImage.c @@ -1,3 +1,12 @@ +/* +* Copyright (c) 2015 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. +*/ + #import #import diff --git a/infer/models/objc/src/CoreGraphics/CGImageDestination.c b/infer/models/objc/src/CoreGraphics/CGImageDestination.c index f83504ed3..08d0ac2bc 100644 --- a/infer/models/objc/src/CoreGraphics/CGImageDestination.c +++ b/infer/models/objc/src/CoreGraphics/CGImageDestination.c @@ -1,3 +1,12 @@ +/* +* Copyright (c) 2015 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. +*/ + #import #import diff --git a/infer/models/objc/src/CoreGraphics/CGImageSource.c b/infer/models/objc/src/CoreGraphics/CGImageSource.c index 5051e6ee8..c39c331a2 100644 --- a/infer/models/objc/src/CoreGraphics/CGImageSource.c +++ b/infer/models/objc/src/CoreGraphics/CGImageSource.c @@ -1,3 +1,12 @@ +/* +* Copyright (c) 2015 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. +*/ + #import #import diff --git a/infer/models/objc/src/CoreGraphics/CGLayer.c b/infer/models/objc/src/CoreGraphics/CGLayer.c index 7ac546313..53edf9e55 100644 --- a/infer/models/objc/src/CoreGraphics/CGLayer.c +++ b/infer/models/objc/src/CoreGraphics/CGLayer.c @@ -1,3 +1,12 @@ +/* +* Copyright (c) 2015 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. +*/ + #import void __objc_release_cf(CGLayerRef); diff --git a/infer/models/objc/src/CoreGraphics/CGPDFContentStream.c b/infer/models/objc/src/CoreGraphics/CGPDFContentStream.c index 9b38f9953..09d4c30ec 100644 --- a/infer/models/objc/src/CoreGraphics/CGPDFContentStream.c +++ b/infer/models/objc/src/CoreGraphics/CGPDFContentStream.c @@ -1,3 +1,12 @@ +/* +* Copyright (c) 2015 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. +*/ + #import void __objc_release_cf(CGPDFContentStreamRef); diff --git a/infer/models/objc/src/CoreGraphics/CGPDFDocument.c b/infer/models/objc/src/CoreGraphics/CGPDFDocument.c index bd9353a4f..02b82d6ab 100644 --- a/infer/models/objc/src/CoreGraphics/CGPDFDocument.c +++ b/infer/models/objc/src/CoreGraphics/CGPDFDocument.c @@ -1,3 +1,12 @@ +/* +* Copyright (c) 2015 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. +*/ + #import void __objc_release_cf(CGPDFDocumentRef); diff --git a/infer/models/objc/src/CoreGraphics/CGPDFOperatorTable.c b/infer/models/objc/src/CoreGraphics/CGPDFOperatorTable.c index 5bdd01d21..3e7ad38f7 100644 --- a/infer/models/objc/src/CoreGraphics/CGPDFOperatorTable.c +++ b/infer/models/objc/src/CoreGraphics/CGPDFOperatorTable.c @@ -1,3 +1,12 @@ +/* +* Copyright (c) 2015 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. +*/ + #import void __objc_release_cf(CGPDFOperatorTableRef); diff --git a/infer/models/objc/src/CoreGraphics/CGPDFPage.c b/infer/models/objc/src/CoreGraphics/CGPDFPage.c index 0cafb8d28..0dbeb2699 100644 --- a/infer/models/objc/src/CoreGraphics/CGPDFPage.c +++ b/infer/models/objc/src/CoreGraphics/CGPDFPage.c @@ -1,3 +1,12 @@ +/* +* Copyright (c) 2015 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. +*/ + #import void __objc_release_cf(CGPDFPageRef); diff --git a/infer/models/objc/src/CoreGraphics/CGPDFScanner.c b/infer/models/objc/src/CoreGraphics/CGPDFScanner.c index d85dd4e13..f8fc9c110 100644 --- a/infer/models/objc/src/CoreGraphics/CGPDFScanner.c +++ b/infer/models/objc/src/CoreGraphics/CGPDFScanner.c @@ -1,3 +1,12 @@ +/* +* Copyright (c) 2015 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. +*/ + #import void __objc_release_cf(CGPDFScannerRef); diff --git a/infer/models/objc/src/CoreGraphics/CGPath.c b/infer/models/objc/src/CoreGraphics/CGPath.c index f16d3598c..dbd02c360 100644 --- a/infer/models/objc/src/CoreGraphics/CGPath.c +++ b/infer/models/objc/src/CoreGraphics/CGPath.c @@ -1,3 +1,12 @@ +/* +* Copyright (c) 2015 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. +*/ + #import #import diff --git a/infer/models/objc/src/CoreGraphics/CGPattern.c b/infer/models/objc/src/CoreGraphics/CGPattern.c index 8af2b4a20..1d779a944 100644 --- a/infer/models/objc/src/CoreGraphics/CGPattern.c +++ b/infer/models/objc/src/CoreGraphics/CGPattern.c @@ -1,3 +1,12 @@ +/* +* Copyright (c) 2015 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. +*/ + #import void __objc_release_cf(CGPatternRef); diff --git a/infer/models/objc/src/CoreGraphics/CGShading.c b/infer/models/objc/src/CoreGraphics/CGShading.c index aa659711a..36fd86e77 100644 --- a/infer/models/objc/src/CoreGraphics/CGShading.c +++ b/infer/models/objc/src/CoreGraphics/CGShading.c @@ -1,3 +1,12 @@ +/* +* Copyright (c) 2015 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. +*/ + #import void __objc_release_cf(CGShadingRef); diff --git a/infer/models/objc/src/NSArray.h b/infer/models/objc/src/NSArray.h index 8f9b974c9..be0a0cd5b 100644 --- a/infer/models/objc/src/NSArray.h +++ b/infer/models/objc/src/NSArray.h @@ -1,3 +1,12 @@ +/* +* Copyright (c) 2015 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. +*/ + #import @interface NSArray : NSObject diff --git a/infer/models/objc/src/NSArray.m b/infer/models/objc/src/NSArray.m index c4a479c19..23b9c29c1 100644 --- a/infer/models/objc/src/NSArray.m +++ b/infer/models/objc/src/NSArray.m @@ -1,3 +1,12 @@ +/* +* Copyright (c) 2015 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. +*/ + #import "NSArray.h" @implementation NSArray diff --git a/infer/models/objc/src/NSAutoreleasePool.m b/infer/models/objc/src/NSAutoreleasePool.m index 750e264ee..570452102 100644 --- a/infer/models/objc/src/NSAutoreleasePool.m +++ b/infer/models/objc/src/NSAutoreleasePool.m @@ -1,6 +1,10 @@ /* - * Copyright (c) 2014- Facebook. - * All rights reserved. +* Copyright (c) 2014 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ #pragma clang diagnostic ignored "-Wprotocol" diff --git a/infer/models/objc/src/NSData.m b/infer/models/objc/src/NSData.m index 52a5de0a5..aa2054054 100644 --- a/infer/models/objc/src/NSData.m +++ b/infer/models/objc/src/NSData.m @@ -1,3 +1,12 @@ +/* +* Copyright (c) 2015 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. +*/ + #import #include diff --git a/infer/models/objc/src/NSDictionary.h b/infer/models/objc/src/NSDictionary.h index 7d0e80749..47a3097a7 100644 --- a/infer/models/objc/src/NSDictionary.h +++ b/infer/models/objc/src/NSDictionary.h @@ -1,3 +1,12 @@ +/* +* Copyright (c) 2015 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. +*/ + #import @interface NSDictionary : NSObject diff --git a/infer/models/objc/src/NSDictionary.m b/infer/models/objc/src/NSDictionary.m index 6a57a399e..58fe00a1e 100644 --- a/infer/models/objc/src/NSDictionary.m +++ b/infer/models/objc/src/NSDictionary.m @@ -1,3 +1,12 @@ +/* +* Copyright (c) 2015 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. +*/ + #pragma clang diagnostic ignored "-Wdeprecated-declarations" #pragma clang diagnostic ignored "-Wdeprecated-objc-isa-usage" diff --git a/infer/models/objc/src/NSFileHandle.m b/infer/models/objc/src/NSFileHandle.m index 8785b47da..7d93e95b3 100644 --- a/infer/models/objc/src/NSFileHandle.m +++ b/infer/models/objc/src/NSFileHandle.m @@ -1,3 +1,12 @@ +/* +* Copyright (c) 2015 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. +*/ + #import #include diff --git a/infer/models/objc/src/NSMutableArray.h b/infer/models/objc/src/NSMutableArray.h index f48ea3ea1..97b376d54 100644 --- a/infer/models/objc/src/NSMutableArray.h +++ b/infer/models/objc/src/NSMutableArray.h @@ -1,3 +1,12 @@ +/* +* Copyright (c) 2015 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. +*/ + #import @interface NSMutableArray : NSObject diff --git a/infer/models/objc/src/NSMutableArray.m b/infer/models/objc/src/NSMutableArray.m index 45ff146d4..519b7346f 100644 --- a/infer/models/objc/src/NSMutableArray.m +++ b/infer/models/objc/src/NSMutableArray.m @@ -1,3 +1,12 @@ +/* +* Copyright (c) 2015 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. +*/ + #pragma clang diagnostic ignored "-Wdeprecated-declarations" #pragma clang diagnostic ignored "-Wdeprecated-objc-isa-usage" diff --git a/infer/models/objc/src/NSMutableDictionary.h b/infer/models/objc/src/NSMutableDictionary.h index 8ea4914f0..b460f3ad8 100644 --- a/infer/models/objc/src/NSMutableDictionary.h +++ b/infer/models/objc/src/NSMutableDictionary.h @@ -1,3 +1,12 @@ +/* +* Copyright (c) 2015 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. +*/ + #import @interface NSMutableDictionary : NSObject diff --git a/infer/models/objc/src/NSMutableDictionary.m b/infer/models/objc/src/NSMutableDictionary.m index e24e932d0..456b3b65c 100644 --- a/infer/models/objc/src/NSMutableDictionary.m +++ b/infer/models/objc/src/NSMutableDictionary.m @@ -1,3 +1,12 @@ +/* +* Copyright (c) 2015 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. +*/ + #pragma clang diagnostic ignored "-Wdeprecated-declarations" #pragma clang diagnostic ignored "-Wdeprecated-objc-isa-usage" diff --git a/infer/models/objc/src/NSNumber.h b/infer/models/objc/src/NSNumber.h index f4c449dac..3f70c5d7e 100644 --- a/infer/models/objc/src/NSNumber.h +++ b/infer/models/objc/src/NSNumber.h @@ -1,3 +1,12 @@ +/* +* Copyright (c) 2015 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. +*/ + #import @interface NSNumber : NSObject { diff --git a/infer/models/objc/src/NSNumber.m b/infer/models/objc/src/NSNumber.m index 63895b881..c42f97872 100644 --- a/infer/models/objc/src/NSNumber.m +++ b/infer/models/objc/src/NSNumber.m @@ -1,3 +1,12 @@ +/* +* Copyright (c) 2015 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. +*/ + #import "NSNumber.h" diff --git a/infer/models/objc/src/NSObject.m b/infer/models/objc/src/NSObject.m index fa0fb3837..a86e3b626 100644 --- a/infer/models/objc/src/NSObject.m +++ b/infer/models/objc/src/NSObject.m @@ -1,6 +1,10 @@ /* - * Copyright (c) 2014- Facebook. - * All rights reserved. +* Copyright (c) 2014 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ #pragma clang diagnostic ignored "-Wprotocol" diff --git a/infer/models/objc/src/NSString.h b/infer/models/objc/src/NSString.h index 41f9c95cc..e9e8f0800 100644 --- a/infer/models/objc/src/NSString.h +++ b/infer/models/objc/src/NSString.h @@ -1,3 +1,12 @@ +/* +* Copyright (c) 2015 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. +*/ + #import @interface NSString : NSObject { diff --git a/infer/models/objc/src/NSString.m b/infer/models/objc/src/NSString.m index 744070e56..55c1575f8 100644 --- a/infer/models/objc/src/NSString.m +++ b/infer/models/objc/src/NSString.m @@ -1,3 +1,12 @@ +/* +* Copyright (c) 2015 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. +*/ + #import "NSString.h" #import diff --git a/infer/src/Makefile b/infer/src/Makefile index 7bd8b6c38..c6f621872 100644 --- a/infer/src/Makefile +++ b/infer/src/Makefile @@ -1,5 +1,9 @@ -# Copyright 2013 - present Facebook. -# All Rights Reserved. +# Copyright (c) 2013 - present Facebook, Inc. +# All rights reserved. +# +# This source code is licensed under the BSD style license found in the +# LICENSE file in the root directory of this source tree. An additional grant +# of patent rights can be found in the PATENTS file in the same directory. REMOVE = rm -vf REMOVE_DIR = rm -rvf diff --git a/infer/src/backend/CRC.ml b/infer/src/backend/CRC.ml index 2146c6599..3c6d8964a 100644 --- a/infer/src/backend/CRC.ml +++ b/infer/src/backend/CRC.ml @@ -1,6 +1,11 @@ (* -* Copyright (c) 2009 -2013 Monoidics ltd. -* Copyright (c) 2013 - Facebook. All rights reserved. +* Copyright (c) 2009 - 2013 Monoidics ltd. +* Copyright (c) 2013 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. *) let vecH = [| diff --git a/infer/src/backend/CRC.mli b/infer/src/backend/CRC.mli index 674ec5f96..aed199c62 100644 --- a/infer/src/backend/CRC.mli +++ b/infer/src/backend/CRC.mli @@ -1,7 +1,11 @@ (* -* Copyright (c) 2009 -2013 Monoidics ltd. -* Copyright (c) 2013 - Facebook. +* Copyright (c) 2009 - 2013 Monoidics ltd. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. *) val crc16 : string -> string diff --git a/infer/src/backend/DB.ml b/infer/src/backend/DB.ml index d6432bc02..3828e535b 100644 --- a/infer/src/backend/DB.ml +++ b/infer/src/backend/DB.ml @@ -1,3 +1,13 @@ +(* +* Copyright (c) 2009 - 2013 Monoidics ltd. +* Copyright (c) 2013 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. +*) + (** Database of analysis results *) open Utils diff --git a/infer/src/backend/DB.mli b/infer/src/backend/DB.mli index 3f9f413b1..32118efd4 100644 --- a/infer/src/backend/DB.mli +++ b/infer/src/backend/DB.mli @@ -1,3 +1,13 @@ +(* +* Copyright (c) 2009 - 2013 Monoidics ltd. +* Copyright (c) 2013 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. +*) + (** Database of analysis results *) (** {2 Filename} *) diff --git a/infer/src/backend/OcamlMakefile b/infer/src/backend/OcamlMakefile deleted file mode 100644 index 4b3d858af..000000000 --- a/infer/src/backend/OcamlMakefile +++ /dev/null @@ -1,535 +0,0 @@ -########################################################################### -# OcamlMakefile -# Copyright (C) 1999, 2000 Markus Mottl -# Free to copy and modify! USE AT YOUR OWN RISK! -# -# For updates see: -# http://miss.wu-wien.ac.at/~mottl/ocaml_sources -# -# $Id: OcamlMakefile,v 1.2.4.1 2008/01/13 17:39:45 ccris Exp $ -# -########################################################################### - - -# Set these variables to the names of the sources to be processed and -# the result variable. Order matters during linkage! - -ifndef SOURCES - SOURCES := foo.ml -endif -export SOURCES - -ifndef RESULT - RESULT := foo -endif -export RESULT - -export BCSUFFIX -export NCSUFFIX - -ifndef TOPSUFFIX - TOPSUFFIX := .top -endif - -export TOPSUFFIX - -# Eventually set include- and library-paths, libraries to link, -# additional compilation-, link- and ocamlyacc-flags -# Path- and library information needs not be written with "-I" and such... -# Define THREADS if you need it, otherwise leave it unset! - -export THREADS - -export INCDIRS -export LIBDIRS -export OCAML_DEFAULT_DIRS -export OCAML_LIB_INSTALL - -export LIBS -export CLIBS - -export EXTRA_CMO -export EXTRA_CMX -export EXTRA_CMX_APPEND - -export OCAMLFLAGS -export OCAMLNCFLAGS -export OCAMLBCFLAGS - -export OCAMLLDFLAGS -export OCAMLNLDFLAGS -export OCAMLBLDFLAGS - -ifndef OCAMLCPFLAGS - OCAMLCPFLAGS := a -endif - -export OCAMLCPFLAGS - -export YFLAGS -export IDLFLAGS - -export CC -export CFLAGS -export LDFLAGS - -# Add a list of optional trash files that should be deleted by "make clean" -export TRASH - -#################### variables depending on your Ocaml-installation - -BCRESULT := $(addsuffix $(BCSUFFIX), $(RESULT)) -NCRESULT := $(addsuffix $(NCSUFFIX), $(RESULT)) -TOPRESULT := $(addsuffix $(TOPSUFFIX), $(RESULT)) - -ifndef OCAMLC - OCAMLC := ocamlc.opt -endif - -export OCAMLC - -ifndef OCAMLOPT - OCAMLOPT := ocamlopt.opt -endif - -export OCAMLOPT - -ifndef OCAMLMKTOP - OCAMLMKTOP := ocamlmktop -endif - -export OCAMLMKTOP - -ifndef OCAMLCP - OCAMLCP := ocamlcp -endif - -export OCAMLCP - -ifndef OCAMLDEP - OCAMLDEP := ocamldep -endif - -export OCAMLDEP - -ifndef OCAMLLEX - OCAMLLEX := ocamllex -endif - -export OCAMLLEX - -ifndef OCAMLYACC - OCAMLYACC := ocamlyacc -endif - -export OCAMLYACC - -ifndef OCAMLIDL - CAMLIDL := camlidl -endif - -export OCAMLIDL - -ifndef NOIDLHEADER - MAYBE_IDL_HEADER := -header -endif - -export NOIDLHEADER - -ifndef OCAMLMAKEFILE - OCAMLMAKEFILE := OcamlMakefile -endif - -export OCAMLMAKEFILE - -ifndef OCAMLLIBPATH - OCAMLLIBPATH := \ - $(shell $(OCAMLC) 2>/dev/null -where || echo /usr/local/lib/ocaml) -endif - -export OCAMLLIBPATH - -ifndef OCAML_LIB_INSTALL - OCAML_LIB_INSTALL := $(OCAMLLIBPATH)/contrib -endif - -export OCAML_LIB_INSTALL - - -########################################################################### - -#################### change following sections only if -#################### you know what you are doing! - -# for pedants using "--warn-undefined-variables" -export MAYBE_IDL -export REAL_RESULT -export REAL_RESULT_NOLINK -export CAMLIDLFLAGS -export THREAD_FLAG - -SHELL := /bin/sh - -MLDEPDIR := ._d -BCDIDIR := ._bcdi -NCDIDIR := ._ncdi - -FILTERED := $(filter %.mli %.ml %.mll %.mly %.idl %.c, $(SOURCES)) -SOURCE_DIRS := $(filter-out ./, $(sort $(dir $(FILTERED)))) - -FILTERED_ML := $(filter %.ml, $(FILTERED)) -DEP_ML := $(FILTERED_ML:%.ml=$(MLDEPDIR)/%.d) - -FILTERED_MLI := $(filter %.mli, $(FILTERED)) -DEP_MLI := $(FILTERED_MLI:.mli=.di) - -FILTERED_MLL := $(filter %.mll, $(FILTERED)) -DEP_MLL := $(FILTERED_MLL:%.mll=$(MLDEPDIR)/%.d) -AUTO_MLL := $(FILTERED_MLL:.mll=.ml) - -FILTERED_MLY := $(filter %.mly, $(FILTERED)) -DEP_MLY := $(FILTERED_MLY:%.mly=$(MLDEPDIR)/%.d) $(FILTERED_MLY:.mly=.di) -AUTO_MLY := $(FILTERED_MLY:.mly=.mli) $(FILTERED_MLY:.mly=.ml) - -FILTERED_IDL := $(filter %.idl, $(FILTERED)) -DEP_IDL := $(FILTERED_IDL:%.idl=$(MLDEPDIR)/%.d) $(FILTERED_IDL:.idl=.di) -C_IDL := $(FILTERED_IDL:%.idl=%_idl.c) $(FILTERED_IDL:.idl=.h) -OBJ_C_IDL := $(FILTERED_IDL:%.idl=%_idl.o) -AUTO_IDL := $(FILTERED_IDL:.idl=.mli) $(FILTERED_IDL:.idl=.ml) $(C_IDL) - -FILTERED_C := $(filter %.c, $(FILTERED)) -OBJ_C := $(FILTERED_C:.c=.o) - -AUTO_TARGETS := $(AUTO_MLL) $(AUTO_MLY) $(AUTO_IDL) - -ALL_DEPS := $(DEP_ML) $(DEP_MLI) $(DEP_MLL) $(DEP_MLY) $(DEP_IDL) -MLDEPS := $(filter %.d, $(ALL_DEPS)) -MLIDEPS := $(filter %.di, $(ALL_DEPS)) -BCDEPIS := $(MLIDEPS:%.di=$(BCDIDIR)/%.di) -NCDEPIS := $(MLIDEPS:%.di=$(NCDIDIR)/%.di) - -ALLML := $(filter %.mli %.ml %.mll %.mly %.idl, $(FILTERED)) - -IMPLO_INTF := $(ALLML:%.mli=%.mli.__) -IMPLO_INTF := $(foreach file, $(IMPLO_INTF), \ - $(basename $(file)).cmi $(basename $(file)).cmo) -IMPLO_INTF := $(filter-out %.mli.cmo, $(IMPLO_INTF)) -IMPLO_INTF := $(IMPLO_INTF:%.mli.cmi=%.cmi) - -IMPLX_INTF := $(IMPLO_INTF:.cmo=.cmx) - -INTF := $(filter %.cmi, $(IMPLO_INTF)) -IMPL_CMO := $(filter %.cmo, $(IMPLO_INTF)) -IMPL_CMX := $(IMPL_CMO:.cmo=.cmx) - -OBJ_LINK := $(OBJ_C_IDL) $(OBJ_C) -OBJ_FILES := $(IMPL_CMO:.cmo=.o) $(OBJ_LINK) - -TARGETS := $(sort $(TOPRESULT) $(BCRESULT) $(NCRESULT) $(INTF) \ - $(IMPL_CMO) $(IMPL_CMX) $(OBJ_FILES) $(AUTO_TARGETS) \ - $(BCRESULT).cma $(NCRESULT).cmxa $(NCRESULT).a) - -# If there are IDL-files -ifneq "$(strip $(FILTERED_IDL))" "" - MAYBE_IDL := -cclib -lcamlidl -endif - -INCFLAGS := $(SOURCE_DIRS:%=-I %) $(INCDIRS:%=-I %) $(OCAML_DEFAULT_DIRS:%=-I %) -CINCFLAGS := $(SOURCE_DIRS:%=-I%) $(INCDIRS:%=-I%) $(OCAML_DEFAULT_DIRS:%=-I%) - -ifndef PROFILING - INTF_OCAMLC := $(OCAMLC) -else - ifndef THREADS - INTF_OCAMLC := $(OCAMLCP) -p $(OCAMLCPFLAGS) - else - # OCaml does not support profiling byte code - # with threads (yet), therefore we force an error. - ifndef REAL_OCAMLC - error - endif - endif -endif - -COMMON_LDFLAGS := $(LDFLAGS:%=-ccopt %) $(SOURCE_DIRS:%=-ccopt -L%) \ - $(LIBDIRS:%=-ccopt -L%) $(OCAML_DEFAULT_DIRS:%=-ccopt -L%) - - -OBJS_LIBS := $(OBJ_LINK) $(CLIBS:%=-cclib -l%) $(MAYBE_IDL) - -# If we have to make byte-code -ifndef REAL_OCAMLC - SPECIAL_OCAMLFLAGS := $(OCAMLBCFLAGS) - - REAL_OCAMLC := $(INTF_OCAMLC) - - REAL_IMPL := $(EXTRA_CMO) $(IMPL_CMO) - REAL_IMPL_INTF := $(IMPLO_INTF) - IMPL_SUF := .cmo - - DEPFLAGS := - MAKE_DEPS := $(MLDEPS) $(BCDEPIS) - - ifndef THREADS - ifneq "$(strip $(OBJ_LINK))" "" - ALL_LDFLAGS := -custom - endif - ifdef CLIBS - ALL_LDFLAGS := -custom - endif - endif - - ALL_LDFLAGS += $(INCFLAGS) $(OCAMLLDFLAGS) $(OCAMLBLDFLAGS) \ - $(COMMON_LDFLAGS) $(LIBS:%=%.cma) - - ifdef THREADS - ALL_LDFLAGS += -thread unix.cma threads.cma - THREAD_FLAG := -thread - endif - -# we have to make native-code -else - ifndef PROFILING - SPECIAL_OCAMLFLAGS := $(OCAMLNCFLAGS) - PLDFLAGS := - else - SPECIAL_OCAMLFLAGS := -p $(OCAMLNCFLAGS) - PLDFLAGS := -p - endif - - REAL_IMPL := $(EXTRA_CMX) $(IMPL_CMX) $(EXTRA_CMX_APPEND) - REAL_IMPL_INTF := $(IMPLX_INTF) - IMPL_SUF := .cmx - - CFLAGS := -DNATIVE_CODE $(CFLAGS) - - DEPFLAGS := -native - MAKE_DEPS := $(MLDEPS) $(NCDEPIS) - - ALL_LDFLAGS := $(PLDFLAGS) $(INCFLAGS) $(OCAMLLDFLAGS) \ - $(OCAMLNLDFLAGS) $(COMMON_LDFLAGS) - - ifndef CREATE_LIB - ALL_LDFLAGS += $(LIBS:%=%.cmxa) - endif - - ifdef THREADS - ALL_LDFLAGS := -thread $(ALL_LDFLAGS) - ifndef CREATE_LIB - ALL_LDFLAGS += unix.cmxa threads.cmxa - endif - THREAD_FLAG := -thread - endif -endif - -ALL_OCAMLCFLAGS := $(THREAD_FLAG) $(OCAMLFLAGS) \ - $(INCFLAGS) $(SPECIAL_OCAMLFLAGS) - -ifdef make_deps - -include $(MAKE_DEPS) - AUTO_TARGETS := -endif - -########################################################################### -# USER RULES - -# generates byte-code (default) -byte-code: $(AUTO_TARGETS) - @$(MAKE) -r -f $(OCAMLMAKEFILE) $(BCRESULT) \ - REAL_RESULT="$(BCRESULT)" make_deps=yes -bc: byte-code - -top: $(AUTO_TARGETS) - @$(MAKE) -r -f $(OCAMLMAKEFILE) $(TOPRESULT) \ - REAL_RESULT="$(BCRESULT)" make_deps=yes - -# generates native-code - -native-code: $(AUTO_TARGETS) - @$(MAKE) -r -f $(OCAMLMAKEFILE) $(NCRESULT) \ - REAL_RESULT="$(NCRESULT)" \ - REAL_OCAMLC="$(OCAMLOPT)" \ - make_deps=yes -nc: native-code - -# generates byte-code libraries -byte-code-library: $(AUTO_TARGETS) - @$(MAKE) -r -f $(OCAMLMAKEFILE) $(BCRESULT).cma \ - REAL_RESULT="$(BCRESULT)" \ - CREATE_LIB=yes \ - make_deps=yes -bcl: byte-code-library - -# generates native-code libraries -native-code-library: $(AUTO_TARGETS) - @$(MAKE) -r -f $(OCAMLMAKEFILE) $(NCRESULT).cmxa \ - REAL_RESULT="$(NCRESULT)" \ - REAL_OCAMLC="$(OCAMLOPT)" \ - CREATE_LIB=yes \ - make_deps=yes -ncl: native-code-library - -# generates byte-code with debugging information -debug-code: $(AUTO_TARGETS) - @$(MAKE) -r -f $(OCAMLMAKEFILE) $(BCRESULT) \ - REAL_RESULT="$(BCRESULT)" make_deps=yes \ - OCAMLFLAGS="-g $(OCAMLFLAGS)" \ - OCAMLLDFLAGS="-g $(OCAMLLDFLAGS)" -dc: debug-code - - -# generates byte-code with debugging information -debug-code-nolink: $(AUTO_TARGETS) - @$(MAKE) -r -f $(OCAMLMAKEFILE) $(BCRESULT) \ - REAL_RESULT_NOLINK="$(BCRESULT)" make_deps=yes \ - OCAMLFLAGS="-g $(OCAMLFLAGS)" \ - OCAMLLDFLAGS="-g $(OCAMLLDFLAGS)" -dc: debug-code - -# generates byte-code libraries with debugging information -debug-code-library: $(AUTO_TARGETS) - @$(MAKE) -r -f $(OCAMLMAKEFILE) $(BCRESULT).cma \ - REAL_RESULT="$(BCRESULT)" make_deps=yes \ - CREATE_LIB=yes \ - OCAMLFLAGS="-g $(OCAMLFLAGS)" \ - OCAMLLDFLAGS="-g $(OCAMLLDFLAGS)" -dcl: debug-code-library - -# generates byte-code for profiling -profiling-byte-code: $(AUTO_TARGETS) - @$(MAKE) -r -f $(OCAMLMAKEFILE) $(BCRESULT) \ - REAL_RESULT="$(BCRESULT)" PROFILING="y" \ - make_deps=yes -pbc: profiling-byte-code - -# generates native-code - -profiling-native-code: $(AUTO_TARGETS) - @$(MAKE) -r -f $(OCAMLMAKEFILE) $(NCRESULT) \ - REAL_RESULT="$(NCRESULT)" \ - REAL_OCAMLC="$(OCAMLOPT)" \ - PROFILING="y" \ - make_deps=yes -pnc: profiling-native-code - -# generates byte-code libraries -profiling-byte-code-library: $(AUTO_TARGETS) - @$(MAKE) -r -f $(OCAMLMAKEFILE) $(BCRESULT).cma \ - REAL_RESULT="$(BCRESULT)" PROFILING="y" \ - CREATE_LIB=yes \ - make_deps=yes -pbcl: profiling-byte-code-library - -# generates native-code libraries -profiling-native-code-library: $(AUTO_TARGETS) - @$(MAKE) -r -f $(OCAMLMAKEFILE) $(NCRESULT).cmxa \ - REAL_RESULT="$(NCRESULT)" PROFILING="y" \ - REAL_OCAMLC="$(OCAMLOPT)" \ - CREATE_LIB=yes \ - make_deps=yes -pncl: profiling-native-code-library - -########################################################################### -# LOW LEVEL RULES - -$(REAL_RESULT): $(REAL_IMPL_INTF) $(OBJ_LINK) - $(REAL_OCAMLC) $(ALL_LDFLAGS) $(OBJS_LIBS) -o $@ \ - $(REAL_IMPL) - -$(REAL_RESULT_NOLINK): $(REAL_IMPL_INTF) $(OBJ_LINK) -# $(REAL_OCAMLC) $(ALL_LDFLAGS) $(OBJS_LIBS) -o $@ \ -# $(REAL_IMPL) - -%$(TOPSUFFIX): $(REAL_IMPL_INTF) $(OBJ_LINK) - $(OCAMLMKTOP) $(ALL_LDFLAGS) $(OBJS_LIBS) -o $@ \ - $(REAL_IMPL) - -.SUFFIXES: .mli .ml .cmi .cmo .cmx .cma .cmxa .o \ - .mly .di .d .a .idl .c .h - -%.cma: $(REAL_IMPL_INTF) $(OBJ_LINK) - $(REAL_OCAMLC) -a $(ALL_LDFLAGS) $(OBJS_LIBS) -o $@ \ - $(OCAMLBLDFLAGS) $(REAL_IMPL) - -%.cmxa %.a: $(REAL_IMPL_INTF) $(OBJ_LINK) - $(OCAMLOPT) -a $(ALL_LDFLAGS) $(OBJS_LIBS) \ - $(OCAMLNLDFLAGS) -o $@ $(REAL_IMPL) - -.mli.cmi: - $(INTF_OCAMLC) -c $(THREAD_FLAG) $(OCAMLFLAGS) \ - $(INCFLAGS) $< - -.ml.cmi .ml.o .ml.cmx .ml.cmo: - $(REAL_OCAMLC) -c $(ALL_OCAMLCFLAGS) $< - -.PRECIOUS: %.ml -%.ml: %.mll - $(OCAMLLEX) $< - -.PRECIOUS: %.ml %.mli -%.ml %.mli: %.mly - $(OCAMLYACC) $(YFLAGS) $< - -.PRECIOUS: %.ml %.mli %_idl.c %.h -%.ml %.mli %_idl.c %.h: %.idl - $(CAMLIDL) $(MAYBE_IDL_HEADER) $(IDLFLAGS) \ - $(CAMLIDLFLAGS) $< - @if [ $(NOIDLHEADER) ]; then touch $*.h; fi; - mv $*.c $*_idl.c - -.c.o: - $(CC) -c $(CFLAGS) $(CINCFLAGS) -I"$(OCAMLLIBPATH)" \ - $< -o $@ - -$(MLDEPDIR)/%.d: %.ml -# @echo making $@ from $< - @d=`dirname $@`; \ - if [ ! -d $$d ]; then mkdir -p $$d; fi - @$(OCAMLDEP) $(INCFLAGS) $< > $@ - -$(BCDIDIR)/%.di $(NCDIDIR)/%.di: %.mli -# @echo making $@ from $< - @d=`dirname $@`; \ - if [ ! -d $$d ]; then mkdir -p $$d; fi - @$(OCAMLDEP) $(DEPFLAGS) $(INCFLAGS) $< > $@ - -########################################################################### -# (UN)INSTALL RULES FOR LIBRARIES - -.PHONY: libinstall -libinstall: all - @printf "\nInstalling library to: $(OCAML_LIB_INSTALL)\n" - @printf "Is this ok? (y/[n]) - " - @\ - read ans; \ - if [ "$$ans" != "y" ]; then \ - echo Installation aborted.; exit 1; fi - @echo - -install -d $(OCAML_LIB_INSTALL) - for i in $(LIBINSTALL_FILES); \ - do install -m 0644 $$i $(OCAML_LIB_INSTALL); done - @printf "\nInstallation successful.\n" - -.PHONY: libuninstall -libuninstall: - @printf "\nUninstalling library from: $(OCAML_LIB_INSTALL)\n" - @printf "Is this ok? (y/[n]) - " - @\ - read ans; \ - if [ "$$ans" != "y" ]; then \ - echo Uninstallation aborted.; exit 1; fi - @echo - cd $(OCAML_LIB_INSTALL); rm $(LIBINSTALL_FILES) - @printf "\nUninstallation successful.\n" - -########################################################################### -# MAINTAINANCE RULES - -.PHONY: clean -clean: - rm -f $(TARGETS) $(TRASH) - rm -rf $(BCDIDIR) $(NCDIDIR) $(MLDEPDIR) - -.PHONY: nobackup -nobackup: - rm -f *.bak *~ *.dup diff --git a/infer/src/backend/abs.ml b/infer/src/backend/abs.ml index ca3f877e0..707ba4473 100644 --- a/infer/src/backend/abs.ml +++ b/infer/src/backend/abs.ml @@ -1,7 +1,11 @@ (* -* Copyright (c) 2009 -2013 Monoidics ltd. -* Copyright (c) 2013 - Facebook. +* Copyright (c) 2009 - 2013 Monoidics ltd. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. *) (** Implementation of Abstraction Functions *) diff --git a/infer/src/backend/abs.mli b/infer/src/backend/abs.mli index 65ca5c2c9..0e122295f 100644 --- a/infer/src/backend/abs.mli +++ b/infer/src/backend/abs.mli @@ -1,7 +1,11 @@ (* -* Copyright (c) 2009 -2013 Monoidics ltd. -* Copyright (c) 2013 - Facebook. +* Copyright (c) 2009 - 2013 Monoidics ltd. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. *) (** Implementation of Abstraction Functions *) diff --git a/infer/src/backend/absarray.ml b/infer/src/backend/absarray.ml index dd8c4e272..beff1040d 100644 --- a/infer/src/backend/absarray.ml +++ b/infer/src/backend/absarray.ml @@ -1,7 +1,11 @@ (* -* Copyright (c) 2009 -2013 Monoidics ltd. -* Copyright (c) 2013 - Facebook. +* Copyright (c) 2009 - 2013 Monoidics ltd. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. *) (** Abstraction for Arrays *) diff --git a/infer/src/backend/absarray.mli b/infer/src/backend/absarray.mli index 27a27664e..da5b5dddf 100644 --- a/infer/src/backend/absarray.mli +++ b/infer/src/backend/absarray.mli @@ -1,7 +1,11 @@ (* -* Copyright (c) 2009-2013 Monoidics ltd. -* Copyright (c) 2013- Facebook. +* Copyright (c) 2009 - 2013 Monoidics ltd. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. *) (** Abstraction for Arrays *) @@ -13,4 +17,4 @@ val abstract_array_check : Prop.normal Prop.t -> Prop.normal Prop.t val array_abstraction_performed : bool ref (** remove redundant elements in an array *) -val remove_redundant_elements : Prop.normal Prop.t -> Prop.normal Prop.t \ No newline at end of file +val remove_redundant_elements : Prop.normal Prop.t -> Prop.normal Prop.t diff --git a/infer/src/backend/autounit.ml b/infer/src/backend/autounit.ml index 5f6fa3e28..2539331cc 100644 --- a/infer/src/backend/autounit.ml +++ b/infer/src/backend/autounit.ml @@ -1,7 +1,11 @@ (* -* Copyright (c) 2009 -2013 Monoidics ltd. -* Copyright (c) 2013 - Facebook. +* Copyright (c) 2009 - 2013 Monoidics ltd. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. *) (** Generate unit tests automatically from specs *) diff --git a/infer/src/backend/autounit.mli b/infer/src/backend/autounit.mli index 5dae77db1..37f1be0c2 100644 --- a/infer/src/backend/autounit.mli +++ b/infer/src/backend/autounit.mli @@ -1,7 +1,11 @@ (* -* Copyright (c) 2009-2013 Monoidics ltd. -* Copyright (c) 2013- Facebook. +* Copyright (c) 2009 - 2013 Monoidics ltd. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. *) (** Generate unit tests automatically from specs *) @@ -16,4 +20,4 @@ val pp_code : Format.formatter -> code -> unit val genunit : string -> Procname.t -> int -> (string * Sil.typ) list -> Prop.normal Specs.spec -> code (** generate code for a main calling all the unit test functions passed as argument *) -val genmain : (Procname.t * int) list -> code \ No newline at end of file +val genmain : (Procname.t * int) list -> code diff --git a/infer/src/backend/buckets.ml b/infer/src/backend/buckets.ml index a415f10dc..1fe748e1d 100644 --- a/infer/src/backend/buckets.ml +++ b/infer/src/backend/buckets.ml @@ -1,7 +1,11 @@ (* -* Copyright (c) 2009 -2013 Monoidics ltd. -* Copyright (c) 2013 - Facebook. +* Copyright (c) 2009 - 2013 Monoidics ltd. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. *) (** Classify bugs into buckets *) diff --git a/infer/src/backend/buckets.mli b/infer/src/backend/buckets.mli index c18d2ad3e..cb9e6d488 100644 --- a/infer/src/backend/buckets.mli +++ b/infer/src/backend/buckets.mli @@ -1,7 +1,11 @@ (* -* Copyright (c) 2009 -2013 Monoidics ltd. -* Copyright (c) 2013 - Facebook. +* Copyright (c) 2009 - 2013 Monoidics ltd. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. *) (** Classify bugs into buckets *) diff --git a/infer/src/backend/callbacks.ml b/infer/src/backend/callbacks.ml index 2f203cedd..6f86dc5cc 100644 --- a/infer/src/backend/callbacks.ml +++ b/infer/src/backend/callbacks.ml @@ -1,5 +1,10 @@ (* -* Copyright (c) 2013 - Facebook. All rights reserved. +* Copyright (c) 2013 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. *) open Utils diff --git a/infer/src/backend/callbacks.mli b/infer/src/backend/callbacks.mli index 56f39b2c7..db60b0de3 100644 --- a/infer/src/backend/callbacks.mli +++ b/infer/src/backend/callbacks.mli @@ -1,5 +1,10 @@ (* -* Copyright (c) 2013 - Facebook. All rights reserved. +* Copyright (c) 2013 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. *) (** Module to register and invoke callbacks *) diff --git a/infer/src/backend/cfg.ml b/infer/src/backend/cfg.ml index 2e77d45e8..0d4d24c53 100644 --- a/infer/src/backend/cfg.ml +++ b/infer/src/backend/cfg.ml @@ -1,7 +1,11 @@ (* -* Copyright (c) 2009 -2013 Monoidics ltd. -* Copyright (c) 2013 - Facebook. +* Copyright (c) 2009 - 2013 Monoidics ltd. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. *) module L = Logging diff --git a/infer/src/backend/cfg.mli b/infer/src/backend/cfg.mli index b20197b35..7d288f448 100644 --- a/infer/src/backend/cfg.mli +++ b/infer/src/backend/cfg.mli @@ -1,7 +1,11 @@ (* -* Copyright (c) 2009 -2013 Monoidics ltd. -* Copyright (c) 2013 - Facebook. +* Copyright (c) 2009 - 2013 Monoidics ltd. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. *) (** Control Flow Graph for Interprocedural Analysis *) diff --git a/infer/src/backend/cg.ml b/infer/src/backend/cg.ml index 75aaf23ef..50d1acca5 100644 --- a/infer/src/backend/cg.ml +++ b/infer/src/backend/cg.ml @@ -1,7 +1,11 @@ (* -* Copyright (c) 2009 -2013 Monoidics ltd. -* Copyright (c) 2013 - Facebook. +* Copyright (c) 2009 - 2013 Monoidics ltd. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. *) (** Module for call graphs *) diff --git a/infer/src/backend/cg.mli b/infer/src/backend/cg.mli index 6c024177d..94fa9542a 100644 --- a/infer/src/backend/cg.mli +++ b/infer/src/backend/cg.mli @@ -1,7 +1,11 @@ (* -* Copyright (c) 2009-2013 Monoidics ltd. -* Copyright (c) 2013- Facebook. +* Copyright (c) 2009 - 2013 Monoidics ltd. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. *) (** Module for call graphs *) diff --git a/infer/src/backend/config.ml b/infer/src/backend/config.ml index 814b610df..b0c532a1a 100644 --- a/infer/src/backend/config.ml +++ b/infer/src/backend/config.ml @@ -1,7 +1,11 @@ (* -* Copyright (c) 2009 -2013 Monoidics ltd. -* Copyright (c) 2013 - Facebook. +* Copyright (c) 2009 - 2013 Monoidics ltd. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. *) module F = Format;; diff --git a/infer/src/backend/dom.ml b/infer/src/backend/dom.ml index 671025cc7..f82677508 100644 --- a/infer/src/backend/dom.ml +++ b/infer/src/backend/dom.ml @@ -1,7 +1,11 @@ (* -* Copyright (c) 2009 -2013 Monoidics ltd. -* Copyright (c) 2013 - Facebook. +* Copyright (c) 2009 - 2013 Monoidics ltd. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. *) (** Operators for the abstract domain. In particular, join and meet. *) diff --git a/infer/src/backend/dom.mli b/infer/src/backend/dom.mli index 7c8b5f997..ca705f645 100644 --- a/infer/src/backend/dom.mli +++ b/infer/src/backend/dom.mli @@ -1,7 +1,11 @@ (* -* Copyright (c) 2009 -2013 Monoidics ltd. -* Copyright (c) 2013 - Facebook. +* Copyright (c) 2009 - 2013 Monoidics ltd. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. *) (** Join and Meet Operators *) diff --git a/infer/src/backend/dotty.ml b/infer/src/backend/dotty.ml index 28bf640eb..a0b24bb4c 100644 --- a/infer/src/backend/dotty.ml +++ b/infer/src/backend/dotty.ml @@ -1,7 +1,11 @@ (* -* Copyright (c) 2009 -2013 Monoidics ltd. -* Copyright (c) 2013 - Facebook. +* Copyright (c) 2009 - 2013 Monoidics ltd. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. *) module L = Logging diff --git a/infer/src/backend/dotty.mli b/infer/src/backend/dotty.mli index 0ac2cbd67..aa70e5835 100644 --- a/infer/src/backend/dotty.mli +++ b/infer/src/backend/dotty.mli @@ -1,7 +1,11 @@ (* -* Copyright (c) 2009-2013 Monoidics ltd. -* Copyright (c) 2013- Facebook. +* Copyright (c) 2009 - 2013 Monoidics ltd. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. *) (** Pretty printing functions in dot format. *) diff --git a/infer/src/backend/errdesc.ml b/infer/src/backend/errdesc.ml index ef1130229..d1080e900 100644 --- a/infer/src/backend/errdesc.ml +++ b/infer/src/backend/errdesc.ml @@ -1,7 +1,11 @@ (* -* Copyright (c) 2009 -2013 Monoidics ltd. -* Copyright (c) 2013 - Facebook. +* Copyright (c) 2009 - 2013 Monoidics ltd. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. *) (** Create descriptions of analysis errors *) diff --git a/infer/src/backend/errdesc.mli b/infer/src/backend/errdesc.mli index 1fb14c6ba..06ab18d94 100644 --- a/infer/src/backend/errdesc.mli +++ b/infer/src/backend/errdesc.mli @@ -1,7 +1,11 @@ (* -* Copyright (c) 2009 -2013 Monoidics ltd. -* Copyright (c) 2013 - Facebook. +* Copyright (c) 2009 - 2013 Monoidics ltd. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. *) (** Create descriptions of analysis errors *) diff --git a/infer/src/backend/errlog.ml b/infer/src/backend/errlog.ml index 29b5c06cb..44d82f3a7 100644 --- a/infer/src/backend/errlog.ml +++ b/infer/src/backend/errlog.ml @@ -1,6 +1,10 @@ (* -* Copyright (c) 2015 - Facebook. +* Copyright (c) 2015 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. *) open Utils diff --git a/infer/src/backend/errlog.mli b/infer/src/backend/errlog.mli index aa0fca24d..f35d4df55 100644 --- a/infer/src/backend/errlog.mli +++ b/infer/src/backend/errlog.mli @@ -1,6 +1,10 @@ (* -* Copyright (c) 2015 - Facebook. +* Copyright (c) 2015 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. *) (** Module for error logs. *) diff --git a/infer/src/backend/exceptions.ml b/infer/src/backend/exceptions.ml index 04fd931cf..cfd046bd3 100644 --- a/infer/src/backend/exceptions.ml +++ b/infer/src/backend/exceptions.ml @@ -1,7 +1,11 @@ (* -* Copyright (c) 2009 -2013 Monoidics ltd. -* Copyright (c) 2013 - Facebook. +* Copyright (c) 2009 - 2013 Monoidics ltd. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. *) module L = Logging diff --git a/infer/src/backend/exceptions.mli b/infer/src/backend/exceptions.mli index 6a901de07..e1209caed 100644 --- a/infer/src/backend/exceptions.mli +++ b/infer/src/backend/exceptions.mli @@ -1,7 +1,11 @@ (* -* Copyright (c) 2009 -2013 Monoidics ltd. -* Copyright (c) 2013 - Facebook. +* Copyright (c) 2009 - 2013 Monoidics ltd. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. *) open Utils diff --git a/infer/src/backend/exe_env.ml b/infer/src/backend/exe_env.ml index 9c0d51e1a..2d5038aa1 100644 --- a/infer/src/backend/exe_env.ml +++ b/infer/src/backend/exe_env.ml @@ -1,7 +1,11 @@ (* -* Copyright (c) 2009 -2013 Monoidics ltd. -* Copyright (c) 2013 - Facebook. +* Copyright (c) 2009 - 2013 Monoidics ltd. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. *) (** Support for Execution environments *) diff --git a/infer/src/backend/exe_env.mli b/infer/src/backend/exe_env.mli index a089fd16f..21a164afe 100644 --- a/infer/src/backend/exe_env.mli +++ b/infer/src/backend/exe_env.mli @@ -1,7 +1,11 @@ (* -* Copyright (c) 2009 -2013 Monoidics ltd. -* Copyright (c) 2013 - Facebook. +* Copyright (c) 2009 - 2013 Monoidics ltd. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. *) open Utils diff --git a/infer/src/backend/fork.ml b/infer/src/backend/fork.ml index 115f331aa..42edc1468 100644 --- a/infer/src/backend/fork.ml +++ b/infer/src/backend/fork.ml @@ -1,7 +1,11 @@ (* -* Copyright (c) 2009 -2013 Monoidics ltd. -* Copyright (c) 2013 - Facebook. +* Copyright (c) 2009 - 2013 Monoidics ltd. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. *) module L = Logging diff --git a/infer/src/backend/fork.mli b/infer/src/backend/fork.mli index ec7b152d9..09cb81a06 100644 --- a/infer/src/backend/fork.mli +++ b/infer/src/backend/fork.mli @@ -1,7 +1,11 @@ (* -* Copyright (c) 2009-2013 Monoidics ltd. -* Copyright (c) 2013- Facebook. +* Copyright (c) 2009 - 2013 Monoidics ltd. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. *) (** Implementation of the Parallel Interprocedural Footprint Analysis Algorithm *) diff --git a/infer/src/backend/ident.ml b/infer/src/backend/ident.ml index ae9b92c2d..acb6444ff 100644 --- a/infer/src/backend/ident.ml +++ b/infer/src/backend/ident.ml @@ -1,7 +1,11 @@ (* -* Copyright (c) 2009 -2013 Monoidics ltd. -* Copyright (c) 2013 - Facebook. +* Copyright (c) 2009 - 2013 Monoidics ltd. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. *) (** Module for Names and Identifiers *) diff --git a/infer/src/backend/ident.mli b/infer/src/backend/ident.mli index ba2c51ee5..13a2b9454 100644 --- a/infer/src/backend/ident.mli +++ b/infer/src/backend/ident.mli @@ -1,7 +1,11 @@ (* -* Copyright (c) 2009-2013 Monoidics ltd. -* Copyright (c) 2013- Facebook. +* Copyright (c) 2009 - 2013 Monoidics ltd. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. *) (** Identifiers: program variables and logical variables *) diff --git a/infer/src/backend/inferanalyze.ml b/infer/src/backend/inferanalyze.ml index a6f07c94d..9f56fd36b 100644 --- a/infer/src/backend/inferanalyze.ml +++ b/infer/src/backend/inferanalyze.ml @@ -1,6 +1,11 @@ (* -* Copyright (c) 2009 -2013 Monoidics ltd. -* Copyright (c) 2013 - Facebook. All rights reserved. +* Copyright (c) 2009 - 2013 Monoidics ltd. +* Copyright (c) 2013 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. *) (** Main module for the analysis after the capture phase *) diff --git a/infer/src/backend/inferconfig.ml b/infer/src/backend/inferconfig.ml index bab9a70af..8c892494d 100644 --- a/infer/src/backend/inferconfig.ml +++ b/infer/src/backend/inferconfig.ml @@ -1,6 +1,10 @@ (* -* Copyright (c) 2015 - Facebook. +* Copyright (c) 2015 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. *) open Utils diff --git a/infer/src/backend/inferconfig.mli b/infer/src/backend/inferconfig.mli index ca13e101f..075fc3751 100644 --- a/infer/src/backend/inferconfig.mli +++ b/infer/src/backend/inferconfig.mli @@ -1,6 +1,10 @@ (* -* Copyright (c) 2015 - Facebook. +* Copyright (c) 2015 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. *) (** Filter type for a source file *) diff --git a/infer/src/backend/interproc.ml b/infer/src/backend/interproc.ml index e99c95fe5..7d2aaf6d8 100644 --- a/infer/src/backend/interproc.ml +++ b/infer/src/backend/interproc.ml @@ -1,6 +1,11 @@ (* -* Copyright (c) 2009 -2013 Monoidics ltd. -* Copyright (c) 2013 - Facebook. All rights reserved. +* Copyright (c) 2009 - 2013 Monoidics ltd. +* Copyright (c) 2013 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. *) (** Interprocedural Analysis *) diff --git a/infer/src/backend/interproc.mli b/infer/src/backend/interproc.mli index a9b0f9878..ed4bbd6ce 100644 --- a/infer/src/backend/interproc.mli +++ b/infer/src/backend/interproc.mli @@ -1,7 +1,11 @@ (* -* Copyright (c) 2009 -2013 Monoidics ltd. -* Copyright (c) 2013 - Facebook. +* Copyright (c) 2009 - 2013 Monoidics ltd. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. *) (** Interprocedural Analysis *) diff --git a/infer/src/backend/io_infer.ml b/infer/src/backend/io_infer.ml index d5d45305e..4d13ae240 100644 --- a/infer/src/backend/io_infer.ml +++ b/infer/src/backend/io_infer.ml @@ -1,7 +1,11 @@ (* -* Copyright (c) 2009 -2013 Monoidics ltd. -* Copyright (c) 2013 - Facebook. +* Copyright (c) 2009 - 2013 Monoidics ltd. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. *) (** Module to handle IO. Includes html and xml modules. *) diff --git a/infer/src/backend/io_infer.mli b/infer/src/backend/io_infer.mli index 4e4d83296..a642828d7 100644 --- a/infer/src/backend/io_infer.mli +++ b/infer/src/backend/io_infer.mli @@ -1,7 +1,11 @@ (* -* Copyright (c) 2009-2013 Monoidics ltd. -* Copyright (c) 2013- Facebook. +* Copyright (c) 2009 - 2013 Monoidics ltd. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. *) (** Module to handle IO. Includes html and xml modules. *) diff --git a/infer/src/backend/latex.ml b/infer/src/backend/latex.ml index 18b592ca4..e19bb970d 100644 --- a/infer/src/backend/latex.ml +++ b/infer/src/backend/latex.ml @@ -1,7 +1,11 @@ (* -* Copyright (c) 2009-2013 Monoidics ltd. -* Copyright (c) 2013- Facebook. +* Copyright (c) 2009 - 2013 Monoidics ltd. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. *) module F = Format diff --git a/infer/src/backend/latex.mli b/infer/src/backend/latex.mli index 2fd434eec..380416a33 100644 --- a/infer/src/backend/latex.mli +++ b/infer/src/backend/latex.mli @@ -1,7 +1,11 @@ (* -* Copyright (c) 2009-2013 Monoidics ltd. -* Copyright (c) 2013- Facebook. +* Copyright (c) 2009 - 2013 Monoidics ltd. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. *) type style = diff --git a/infer/src/backend/localise.ml b/infer/src/backend/localise.ml index 9157e8834..37606541a 100644 --- a/infer/src/backend/localise.ml +++ b/infer/src/backend/localise.ml @@ -1,7 +1,11 @@ (* -* Copyright (c) 2009 -2013 Monoidics ltd. -* Copyright (c) 2013 - Facebook. +* Copyright (c) 2009 - 2013 Monoidics ltd. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. *) (** Support for localisation *) diff --git a/infer/src/backend/localise.mli b/infer/src/backend/localise.mli index 727b49947..5ba1da5b2 100644 --- a/infer/src/backend/localise.mli +++ b/infer/src/backend/localise.mli @@ -1,7 +1,11 @@ (* -* Copyright (c) 2009 -2013 Monoidics ltd. -* Copyright (c) 2013 - Facebook. +* Copyright (c) 2009 - 2013 Monoidics ltd. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. *) (** Support for localisation *) diff --git a/infer/src/backend/logging.ml b/infer/src/backend/logging.ml index bb6f20183..11595c68d 100644 --- a/infer/src/backend/logging.ml +++ b/infer/src/backend/logging.ml @@ -1,7 +1,11 @@ (* -* Copyright (c) 2009-2013 Monoidics ltd. -* Copyright (c) 2013- Facebook. +* Copyright (c) 2009 - 2013 Monoidics ltd. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. *) (** log messages at different levels of verbosity *) diff --git a/infer/src/backend/logging.mli b/infer/src/backend/logging.mli index 7c5796b21..3721eeda6 100644 --- a/infer/src/backend/logging.mli +++ b/infer/src/backend/logging.mli @@ -1,7 +1,11 @@ (* -* Copyright (c) 2009-2013 Monoidics ltd. -* Copyright (c) 2013- Facebook. +* Copyright (c) 2009 - 2013 Monoidics ltd. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. *) open Utils diff --git a/infer/src/backend/mangled.ml b/infer/src/backend/mangled.ml index 98f7e7325..33148ab2e 100644 --- a/infer/src/backend/mangled.ml +++ b/infer/src/backend/mangled.ml @@ -1,7 +1,11 @@ (* -* Copyright (c) 2009-2013 Monoidics ltd. -* Copyright (c) 2013- Facebook. +* Copyright (c) 2009 - 2013 Monoidics ltd. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. *) (** Module for Mangled Names *) diff --git a/infer/src/backend/mangled.mli b/infer/src/backend/mangled.mli index c226b94d2..aec434bf1 100644 --- a/infer/src/backend/mangled.mli +++ b/infer/src/backend/mangled.mli @@ -1,7 +1,11 @@ (* -* Copyright (c) 2009-2013 Monoidics ltd. -* Copyright (c) 2013- Facebook. +* Copyright (c) 2009 - 2013 Monoidics ltd. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. *) (** Module for Mangled Names *) diff --git a/infer/src/backend/match.ml b/infer/src/backend/match.ml index 8f4d00e47..2395cf53f 100644 --- a/infer/src/backend/match.ml +++ b/infer/src/backend/match.ml @@ -1,7 +1,11 @@ (* -* Copyright (c) 2009 -2013 Monoidics ltd. -* Copyright (c) 2013 - Facebook. +* Copyright (c) 2009 - 2013 Monoidics ltd. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. *) (** Functions for "Smart" Pattern Matching *) diff --git a/infer/src/backend/match.mli b/infer/src/backend/match.mli index 7e58e7d21..48826fe40 100644 --- a/infer/src/backend/match.mli +++ b/infer/src/backend/match.mli @@ -1,7 +1,11 @@ (* -* Copyright (c) 2009-2013 Monoidics ltd. -* Copyright (c) 2013- Facebook. +* Copyright (c) 2009 - 2013 Monoidics ltd. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. *) (** Implementation of "Smart" Pattern Matching for higher order singly-linked list predicate. diff --git a/infer/src/backend/mleak_buckets.ml b/infer/src/backend/mleak_buckets.ml index 0f5784e8e..882d78d50 100644 --- a/infer/src/backend/mleak_buckets.ml +++ b/infer/src/backend/mleak_buckets.ml @@ -1,7 +1,11 @@ (* -* Copyright (c) 2009 -2013 Monoidics ltd. -* Copyright (c) 2013 - Facebook. +* Copyright (c) 2009 - 2013 Monoidics ltd. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. *) (** This module handles buckets of memory leaks in Objective-C *) diff --git a/infer/src/backend/mleak_buckets.mli b/infer/src/backend/mleak_buckets.mli index 082ce7e97..27bd80583 100644 --- a/infer/src/backend/mleak_buckets.mli +++ b/infer/src/backend/mleak_buckets.mli @@ -1,6 +1,10 @@ (* -* Copyright (c) 2013 - Facebook. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. *) (** This module handles buckets of memory leaks in Objective-C *) diff --git a/infer/src/backend/objc_models.ml b/infer/src/backend/objc_models.ml index 624606de8..6bdae3d27 100644 --- a/infer/src/backend/objc_models.ml +++ b/infer/src/backend/objc_models.ml @@ -1,6 +1,10 @@ (* -* Copyright (c) 2013 - Facebook. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. *) (** This module handles C or Objective-C types for which there are special rules for memory management *) diff --git a/infer/src/backend/objc_models.mli b/infer/src/backend/objc_models.mli index 25559e9a4..407fea203 100644 --- a/infer/src/backend/objc_models.mli +++ b/infer/src/backend/objc_models.mli @@ -1,6 +1,10 @@ (* -* Copyright (c) 2013 - Facebook. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. *) (** This module models special c struct types from the Apple's Core Foundation libraries diff --git a/infer/src/backend/paths.ml b/infer/src/backend/paths.ml index de2c34379..9f6eec9a5 100644 --- a/infer/src/backend/paths.ml +++ b/infer/src/backend/paths.ml @@ -1,7 +1,11 @@ (* -* Copyright (c) 2009 -2013 Monoidics ltd. -* Copyright (c) 2013 - Facebook. +* Copyright (c) 2009 - 2013 Monoidics ltd. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. *) (** Execution Paths *) diff --git a/infer/src/backend/paths.mli b/infer/src/backend/paths.mli index 0c473e2f2..bf85c2497 100644 --- a/infer/src/backend/paths.mli +++ b/infer/src/backend/paths.mli @@ -1,7 +1,11 @@ (* -* Copyright (c) 2009-2013 Monoidics ltd. -* Copyright (c) 2013- Facebook. +* Copyright (c) 2009 - 2013 Monoidics ltd. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. *) (** Execution Paths *) diff --git a/infer/src/backend/preanal.ml b/infer/src/backend/preanal.ml index 9b8dc58b1..0e5040497 100644 --- a/infer/src/backend/preanal.ml +++ b/infer/src/backend/preanal.ml @@ -1,7 +1,11 @@ (* -* Copyright (c) 2009 -2013 Monoidics ltd. -* Copyright (c) 2013 - Facebook. +* Copyright (c) 2009 - 2013 Monoidics ltd. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. *) module L = Logging diff --git a/infer/src/backend/preanal.mli b/infer/src/backend/preanal.mli index 52aa706bf..8a99e429e 100644 --- a/infer/src/backend/preanal.mli +++ b/infer/src/backend/preanal.mli @@ -1,7 +1,11 @@ (* -* Copyright (c) 2009-2013 Monoidics ltd. -* Copyright (c) 2013- Facebook. +* Copyright (c) 2009 - 2013 Monoidics ltd. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. *) (** Preanalysis for eliminating dead local variables *) diff --git a/infer/src/backend/printer.ml b/infer/src/backend/printer.ml index 8f9bea203..ea0758760 100644 --- a/infer/src/backend/printer.ml +++ b/infer/src/backend/printer.ml @@ -1,7 +1,11 @@ (* -* Copyright (c) 2009 -2013 Monoidics ltd. -* Copyright (c) 2013 - Facebook. +* Copyright (c) 2009 - 2013 Monoidics ltd. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. *) (** Printers for the analysis results *) diff --git a/infer/src/backend/printer.mli b/infer/src/backend/printer.mli index 82121985d..0920d9572 100644 --- a/infer/src/backend/printer.mli +++ b/infer/src/backend/printer.mli @@ -1,7 +1,11 @@ (* -* Copyright (c) 2009 -2013 Monoidics ltd. -* Copyright (c) 2013 - Facebook. +* Copyright (c) 2009 - 2013 Monoidics ltd. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. *) (** Printers for the analysis results *) diff --git a/infer/src/backend/procname.ml b/infer/src/backend/procname.ml index 6451ae383..d1f610688 100644 --- a/infer/src/backend/procname.ml +++ b/infer/src/backend/procname.ml @@ -1,7 +1,11 @@ (* -* Copyright (c) 2009 -2013 Monoidics ltd. -* Copyright (c) 2013 - Facebook. +* Copyright (c) 2009 - 2013 Monoidics ltd. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. *) (** Module for Procedure Names *) diff --git a/infer/src/backend/procname.mli b/infer/src/backend/procname.mli index 52c6ff76a..ac5123df7 100644 --- a/infer/src/backend/procname.mli +++ b/infer/src/backend/procname.mli @@ -1,7 +1,11 @@ (* -* Copyright (c) 2009 -2013 Monoidics ltd. -* Copyright (c) 2013 - Facebook. +* Copyright (c) 2009 - 2013 Monoidics ltd. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. *) (** Module for Procedure Names *) diff --git a/infer/src/backend/prop.ml b/infer/src/backend/prop.ml index 4c68b6847..b046a5dac 100644 --- a/infer/src/backend/prop.ml +++ b/infer/src/backend/prop.ml @@ -1,7 +1,11 @@ (* -* Copyright (c) 2009 -2013 Monoidics ltd. -* Copyright (c) 2013 - Facebook. +* Copyright (c) 2009 - 2013 Monoidics ltd. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. *) (** Functions for Propositions (i.e., Symbolic Heaps) *) diff --git a/infer/src/backend/prop.mli b/infer/src/backend/prop.mli index d63949a91..af7a50f4b 100644 --- a/infer/src/backend/prop.mli +++ b/infer/src/backend/prop.mli @@ -1,7 +1,11 @@ (* -* Copyright (c) 2009-2013 Monoidics ltd. -* Copyright (c) 2013- Facebook. +* Copyright (c) 2009 - 2013 Monoidics ltd. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. *) (** Functions for Propositions (i.e., Symbolic Heaps) *) diff --git a/infer/src/backend/propgraph.ml b/infer/src/backend/propgraph.ml index ac08fc4b9..14e4444c4 100644 --- a/infer/src/backend/propgraph.ml +++ b/infer/src/backend/propgraph.ml @@ -1,7 +1,11 @@ (* -* Copyright (c) 2009 -2013 Monoidics ltd. -* Copyright (c) 2013 - Facebook. +* Copyright (c) 2009 - 2013 Monoidics ltd. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. *) (** Propositions seen as graphs *) diff --git a/infer/src/backend/propgraph.mli b/infer/src/backend/propgraph.mli index 483bec6f6..6922a238e 100644 --- a/infer/src/backend/propgraph.mli +++ b/infer/src/backend/propgraph.mli @@ -1,7 +1,11 @@ (* -* Copyright (c) 2009-2013 Monoidics ltd. -* Copyright (c) 2013- Facebook. +* Copyright (c) 2009 - 2013 Monoidics ltd. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. *) (** Propositions seen as graphs *) diff --git a/infer/src/backend/propset.ml b/infer/src/backend/propset.ml index f57ccee89..79f467f4a 100644 --- a/infer/src/backend/propset.ml +++ b/infer/src/backend/propset.ml @@ -1,7 +1,11 @@ (* -* Copyright (c) 2009 -2013 Monoidics ltd. -* Copyright (c) 2013 - Facebook. +* Copyright (c) 2009 - 2013 Monoidics ltd. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. *) (** Functions for Propositions (i.e., Symbolic Heaps) *) diff --git a/infer/src/backend/propset.mli b/infer/src/backend/propset.mli index da4fb9ba5..cfce4df8c 100644 --- a/infer/src/backend/propset.mli +++ b/infer/src/backend/propset.mli @@ -1,7 +1,11 @@ (* -* Copyright (c) 2009-2013 Monoidics ltd. -* Copyright (c) 2013- Facebook. +* Copyright (c) 2009 - 2013 Monoidics ltd. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. *) (** Functions for Sets of Propositions with and without sharing *) diff --git a/infer/src/backend/prover.ml b/infer/src/backend/prover.ml index 97b533a6e..5d133af14 100644 --- a/infer/src/backend/prover.ml +++ b/infer/src/backend/prover.ml @@ -1,7 +1,11 @@ (* -* Copyright (c) 2009 -2013 Monoidics ltd. -* Copyright (c) 2013 - Facebook. +* Copyright (c) 2009 - 2013 Monoidics ltd. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. *) (** Functions for Propositions (i.e., Symbolic Heaps) *) diff --git a/infer/src/backend/prover.mli b/infer/src/backend/prover.mli index 31fe68a36..8b9614570 100644 --- a/infer/src/backend/prover.mli +++ b/infer/src/backend/prover.mli @@ -1,7 +1,11 @@ (* -* Copyright (c) 2009 -2013 Monoidics ltd. -* Copyright (c) 2013 - Facebook. +* Copyright (c) 2009 - 2013 Monoidics ltd. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. *) (** Functions for Theorem Proving *) diff --git a/infer/src/backend/rearrange.ml b/infer/src/backend/rearrange.ml index 66c94ae4f..c820e17c5 100644 --- a/infer/src/backend/rearrange.ml +++ b/infer/src/backend/rearrange.ml @@ -1,7 +1,11 @@ (* -* Copyright (c) 2009 -2013 Monoidics ltd. -* Copyright (c) 2013 - Facebook. +* Copyright (c) 2009 - 2013 Monoidics ltd. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. *) (** Re-arrangement and extension of structures with fresh variables *) diff --git a/infer/src/backend/rearrange.mli b/infer/src/backend/rearrange.mli index 6022985db..8e5af8638 100644 --- a/infer/src/backend/rearrange.mli +++ b/infer/src/backend/rearrange.mli @@ -1,7 +1,11 @@ (* -* Copyright (c) 2009 -2013 Monoidics ltd. -* Copyright (c) 2013 - Facebook. +* Copyright (c) 2009 - 2013 Monoidics ltd. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. *) (** Re-arrangement and extension of structures with fresh variables *) (* TODO: this description is not clear *) diff --git a/infer/src/backend/reporting.ml b/infer/src/backend/reporting.ml index 482adc829..7afa1e6c6 100644 --- a/infer/src/backend/reporting.ml +++ b/infer/src/backend/reporting.ml @@ -1,6 +1,10 @@ (* -* Copyright (c) 2015 - Facebook. +* Copyright (c) 2015 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. *) open Utils diff --git a/infer/src/backend/reporting.mli b/infer/src/backend/reporting.mli index 66e871dbf..1c2003dbe 100644 --- a/infer/src/backend/reporting.mli +++ b/infer/src/backend/reporting.mli @@ -1,6 +1,10 @@ (* -* Copyright (c) 2015 - Facebook. +* Copyright (c) 2015 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. *) (** Type of functions to report issues to the error_log in a spec. *) diff --git a/infer/src/backend/serialization.ml b/infer/src/backend/serialization.ml index 7d81022af..62bbb4fe9 100644 --- a/infer/src/backend/serialization.ml +++ b/infer/src/backend/serialization.ml @@ -1,7 +1,11 @@ (* * Copyright (c) 2009 - 2013 Monoidics ltd. -* Copyright (c) 2013 - Facebook. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. *) module L = Logging diff --git a/infer/src/backend/serialization.mli b/infer/src/backend/serialization.mli index 9e79a15a6..1e0db333a 100644 --- a/infer/src/backend/serialization.mli +++ b/infer/src/backend/serialization.mli @@ -1,7 +1,11 @@ (* -* Copyright (c) 2009-2013 Monoidics ltd. -* Copyright (c) 2013- Facebook. +* Copyright (c) 2009 - 2013 Monoidics ltd. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. *) (** Serialization of data stuctures *) diff --git a/infer/src/backend/sil.ml b/infer/src/backend/sil.ml index 6fc7138f0..caed6d0e5 100644 --- a/infer/src/backend/sil.ml +++ b/infer/src/backend/sil.ml @@ -1,7 +1,11 @@ (* -* Copyright (c) 2009 -2013 Monoidics ltd. -* Copyright (c) 2013 - Facebook. +* Copyright (c) 2009 - 2013 Monoidics ltd. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. *) (** The Smallfoot Intermediate Language *) diff --git a/infer/src/backend/sil.mli b/infer/src/backend/sil.mli index 666207b27..5a12bd818 100644 --- a/infer/src/backend/sil.mli +++ b/infer/src/backend/sil.mli @@ -1,9 +1,9 @@ (* * Copyright (c) 2009 - 2013 Monoidics ltd. -* Copyright (c) 2013 - Present Facebook, Inc. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. * -* This source code is licensed under the BSD - style license found in the +* This source code is licensed under the BSD style license found in the * LICENSE file in the root directory of this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. *) diff --git a/infer/src/backend/specs.ml b/infer/src/backend/specs.ml index 985ecdd52..c8d2704be 100644 --- a/infer/src/backend/specs.ml +++ b/infer/src/backend/specs.ml @@ -1,7 +1,11 @@ (* -* Copyright (c) 2009 -2013 Monoidics ltd. -* Copyright (c) 2013 - Facebook. +* Copyright (c) 2009 - 2013 Monoidics ltd. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. *) (** Specifications and spec table *) diff --git a/infer/src/backend/specs.mli b/infer/src/backend/specs.mli index 79ed879db..8f4ee42a5 100644 --- a/infer/src/backend/specs.mli +++ b/infer/src/backend/specs.mli @@ -1,7 +1,11 @@ (* -* Copyright (c) 2009 -2013 Monoidics ltd. -* Copyright (c) 2013 - Facebook. +* Copyright (c) 2009 - 2013 Monoidics ltd. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. *) (** Specifications and spec table *) diff --git a/infer/src/backend/state.ml b/infer/src/backend/state.ml index 4aef27f13..850a2524d 100644 --- a/infer/src/backend/state.ml +++ b/infer/src/backend/state.ml @@ -1,7 +1,11 @@ (* -* Copyright (c) 2009 -2013 Monoidics ltd. -* Copyright (c) 2013 - Facebook. +* Copyright (c) 2009 - 2013 Monoidics ltd. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. *) (** State of symbolic execution *) diff --git a/infer/src/backend/state.mli b/infer/src/backend/state.mli index eb9945230..94816a829 100644 --- a/infer/src/backend/state.mli +++ b/infer/src/backend/state.mli @@ -1,7 +1,11 @@ (* -* Copyright (c) 2009 -2013 Monoidics ltd. -* Copyright (c) 2013 - Facebook. +* Copyright (c) 2009 - 2013 Monoidics ltd. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. *) (** State of symbolic execution *) diff --git a/infer/src/backend/symExec.ml b/infer/src/backend/symExec.ml index 3792476ed..900984e0b 100644 --- a/infer/src/backend/symExec.ml +++ b/infer/src/backend/symExec.ml @@ -1,7 +1,11 @@ (* * Copyright (c) 2009 - 2013 Monoidics ltd. -* Copyright (c) 2013 - Facebook. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. *) (** Symbolic Execution *) diff --git a/infer/src/backend/symExec.mli b/infer/src/backend/symExec.mli index 32495e627..32114549d 100644 --- a/infer/src/backend/symExec.mli +++ b/infer/src/backend/symExec.mli @@ -1,7 +1,11 @@ (* -* Copyright (c) 2009 -2013 Monoidics ltd. -* Copyright (c) 2013 - Facebook. +* Copyright (c) 2009 - 2013 Monoidics ltd. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. *) (** Symbolic Execution *) diff --git a/infer/src/backend/tabulation.ml b/infer/src/backend/tabulation.ml index 1f664cf49..004cfd874 100644 --- a/infer/src/backend/tabulation.ml +++ b/infer/src/backend/tabulation.ml @@ -1,7 +1,11 @@ (* -* Copyright (c) 2009 -2013 Monoidics ltd. -* Copyright (c) 2013 - Facebook. +* Copyright (c) 2009 - 2013 Monoidics ltd. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. *) (** Interprocedural footprint analysis *) diff --git a/infer/src/backend/tabulation.mli b/infer/src/backend/tabulation.mli index d3f17eb0d..f21522c21 100644 --- a/infer/src/backend/tabulation.mli +++ b/infer/src/backend/tabulation.mli @@ -1,7 +1,11 @@ (* -* Copyright (c) 2009 -2013 Monoidics ltd. -* Copyright (c) 2013 - Facebook. +* Copyright (c) 2009 - 2013 Monoidics ltd. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. *) (** Interprocedural footprint analysis *) diff --git a/infer/src/backend/type_prop.ml b/infer/src/backend/type_prop.ml index 1f6d07837..0ddccd65a 100644 --- a/infer/src/backend/type_prop.ml +++ b/infer/src/backend/type_prop.ml @@ -1,9 +1,9 @@ (* * Copyright (c) 2009 - 2013 Monoidics ltd. -* Copyright (c) 2013 - Present Facebook, Inc. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. * -* This source code is licensed under the BSD - style license found in the +* This source code is licensed under the BSD style license found in the * LICENSE file in the root directory of this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. *) diff --git a/infer/src/backend/type_prop.mli b/infer/src/backend/type_prop.mli index 45cb1d3b6..4dee8fa6d 100644 --- a/infer/src/backend/type_prop.mli +++ b/infer/src/backend/type_prop.mli @@ -1,2 +1,11 @@ +(* +* Copyright (c) 2009 - 2013 Monoidics ltd. +* Copyright (c) 2013 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. +*) -val type_prop : unit -> unit \ No newline at end of file +val type_prop : unit -> unit diff --git a/infer/src/backend/utils.ml b/infer/src/backend/utils.ml index c2134fec6..970044f59 100644 --- a/infer/src/backend/utils.ml +++ b/infer/src/backend/utils.ml @@ -1,6 +1,11 @@ (* -* Copyright (c) 2009 -2013 Monoidics ltd. -* Copyright (c) 2013 - Facebook. All rights reserved. +* Copyright (c) 2009 - 2013 Monoidics ltd. +* Copyright (c) 2013 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. *) (** General utility functions and definition with global scope *) diff --git a/infer/src/backend/utils.mli b/infer/src/backend/utils.mli index 8e98e97ed..026b9c319 100644 --- a/infer/src/backend/utils.mli +++ b/infer/src/backend/utils.mli @@ -1,7 +1,11 @@ (* -* Copyright (c) 2009 -2013 Monoidics ltd. -* Copyright (c) 2013 - Facebook. +* Copyright (c) 2009 - 2013 Monoidics ltd. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. *) (** General utility functions *) diff --git a/infer/src/backend/version.ml.in b/infer/src/backend/version.ml.in index 81b5d4cee..4d7666ec7 100644 --- a/infer/src/backend/version.ml.in +++ b/infer/src/backend/version.ml.in @@ -1,7 +1,11 @@ (* - * Copyright (c) 2009-2013 Monoidics ltd. - * Copyright (c) 2013- Facebook. - * All rights reserved. +* Copyright (c) 2009 - 2013 Monoidics ltd. +* Copyright (c) 2013 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. *) let major = @MAJOR@ diff --git a/infer/src/checkers/annotations.ml b/infer/src/checkers/annotations.ml index 0fccf43c2..8798808c1 100644 --- a/infer/src/checkers/annotations.ml +++ b/infer/src/checkers/annotations.ml @@ -1,5 +1,10 @@ (* -* Copyright (c) 2013 - Facebook. All rights reserved. +* Copyright (c) 2013 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. *) module F = Format diff --git a/infer/src/checkers/annotations.mli b/infer/src/checkers/annotations.mli index 1e679aca8..3ab3f3c27 100644 --- a/infer/src/checkers/annotations.mli +++ b/infer/src/checkers/annotations.mli @@ -1,5 +1,10 @@ (* -* Copyright (c) 2013 - Facebook. All rights reserved. +* Copyright (c) 2013 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. *) (** Annotations. *) diff --git a/infer/src/checkers/callbackChecker.ml b/infer/src/checkers/callbackChecker.ml index 40241c23f..532ecee03 100644 --- a/infer/src/checkers/callbackChecker.ml +++ b/infer/src/checkers/callbackChecker.ml @@ -1,5 +1,10 @@ (* -* Copyright (c) 2013 - Facebook. All rights reserved. +* Copyright (c) 2013 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. *) (** Make sure callbacks are always unregistered. drive the point home by reporting possible NPE's *) diff --git a/infer/src/checkers/callbackChecker.mli b/infer/src/checkers/callbackChecker.mli index be4cabf01..ee40f0873 100644 --- a/infer/src/checkers/callbackChecker.mli +++ b/infer/src/checkers/callbackChecker.mli @@ -1,5 +1,10 @@ (* -* Copyright (c) 2013 - Facebook. All rights reserved. +* Copyright (c) 2013 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. *) (** Make sure callbacks are always unregistered. drive the point home by reporting possible NPE's *) diff --git a/infer/src/checkers/checkDeadCode.ml b/infer/src/checkers/checkDeadCode.ml index 6240cf0f4..67dfcd777 100644 --- a/infer/src/checkers/checkDeadCode.ml +++ b/infer/src/checkers/checkDeadCode.ml @@ -1,5 +1,10 @@ (* -* Copyright (c) 2013 - Facebook. All rights reserved. +* Copyright (c) 2013 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. *) module L = Logging diff --git a/infer/src/checkers/checkDeadCode.mli b/infer/src/checkers/checkDeadCode.mli index d81abe2dc..e65a66f9f 100644 --- a/infer/src/checkers/checkDeadCode.mli +++ b/infer/src/checkers/checkDeadCode.mli @@ -1,5 +1,10 @@ (* -* Copyright (c) 2013 - Facebook. All rights reserved. +* Copyright (c) 2013 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. *) (** Simple check for dead code. *) diff --git a/infer/src/checkers/checkers.ml b/infer/src/checkers/checkers.ml index 746a7bb4b..c786a52a1 100644 --- a/infer/src/checkers/checkers.ml +++ b/infer/src/checkers/checkers.ml @@ -1,5 +1,10 @@ (* -* Copyright (c) 2013 - Facebook. All rights reserved. +* Copyright (c) 2013 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. *) (** Module for user-defined checkers. *) diff --git a/infer/src/checkers/checkers.mli b/infer/src/checkers/checkers.mli index 12e72ebf8..a2f1b1500 100644 --- a/infer/src/checkers/checkers.mli +++ b/infer/src/checkers/checkers.mli @@ -1,5 +1,10 @@ (* -* Copyright (c) 2013 - Facebook. All rights reserved. +* Copyright (c) 2013 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. *) (** Module for user-defined checkers. *) diff --git a/infer/src/checkers/codeQuery.ml b/infer/src/checkers/codeQuery.ml index 39da18c9e..dde24a616 100644 --- a/infer/src/checkers/codeQuery.ml +++ b/infer/src/checkers/codeQuery.ml @@ -1,5 +1,10 @@ (* -* Copyright (c) 2013 - Facebook. All rights reserved. +* Copyright (c) 2013 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. *) (** Module for code queries. *) diff --git a/infer/src/checkers/codeQuery.mli b/infer/src/checkers/codeQuery.mli index 64d56c38e..df613cbd8 100644 --- a/infer/src/checkers/codeQuery.mli +++ b/infer/src/checkers/codeQuery.mli @@ -1,9 +1,14 @@ (* -* Copyright (c) 2013 - Facebook. All rights reserved. +* Copyright (c) 2013 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. *) (** Module for code queries. *) val code_query_callback : Callbacks.proc_callback_t -val query : string option ref \ No newline at end of file +val query : string option ref diff --git a/infer/src/checkers/codeQueryAst.ml b/infer/src/checkers/codeQueryAst.ml index 3b2aadc57..eb024af50 100644 --- a/infer/src/checkers/codeQueryAst.ml +++ b/infer/src/checkers/codeQueryAst.ml @@ -1,5 +1,10 @@ (* -* Copyright (c) 2013 - Facebook. All rights reserved. +* Copyright (c) 2013 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. *) (** Abstract synyax tree for code queries. *) @@ -48,4 +53,4 @@ let rec pp_rule fmt = function | If (ae1, s, ae2, rule) -> F.fprintf fmt "if(%a %s %a) ... %a" pp_expr ae1 s pp_expr ae2 pp_rule rule let pp_query fmt (rule, action) = - F.fprintf fmt "%a; %a" pp_rule rule pp_action action \ No newline at end of file + F.fprintf fmt "%a; %a" pp_rule rule pp_action action diff --git a/infer/src/checkers/codequeryLexer.mll b/infer/src/checkers/codequeryLexer.mll index e69b227e9..10ef8f397 100644 --- a/infer/src/checkers/codequeryLexer.mll +++ b/infer/src/checkers/codequeryLexer.mll @@ -1,6 +1,10 @@ (* -* Copyright (c) 2013- Facebook. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. *) { diff --git a/infer/src/checkers/codequeryParser.mly b/infer/src/checkers/codequeryParser.mly index dd579cab3..7cbb08d52 100644 --- a/infer/src/checkers/codequeryParser.mly +++ b/infer/src/checkers/codequeryParser.mly @@ -1,5 +1,10 @@ /* -* Copyright (c) 2013 - Facebook. All rights reserved. +* Copyright (c) 2013 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ %{ diff --git a/infer/src/checkers/constantPropagation.ml b/infer/src/checkers/constantPropagation.ml index 1807956ec..6e79fb03f 100644 --- a/infer/src/checkers/constantPropagation.ml +++ b/infer/src/checkers/constantPropagation.ml @@ -1,5 +1,10 @@ (* -* Copyright (c) 2014 - Facebook. All rights reserved. +* Copyright (c) 2014 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. *) open Utils diff --git a/infer/src/checkers/constantPropagation.mli b/infer/src/checkers/constantPropagation.mli index 319859ab4..d7ffee47e 100644 --- a/infer/src/checkers/constantPropagation.mli +++ b/infer/src/checkers/constantPropagation.mli @@ -1,5 +1,10 @@ (* -* Copyright (c) 2014 - Facebook. All rights reserved. +* Copyright (c) 2014 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. *) type const_map = Cfg.Node.t -> Sil.exp -> Sil.const option diff --git a/infer/src/checkers/dataflow.ml b/infer/src/checkers/dataflow.ml index 8436ab154..4b05e05a3 100644 --- a/infer/src/checkers/dataflow.ml +++ b/infer/src/checkers/dataflow.ml @@ -1,5 +1,10 @@ (* -* Copyright (c) 2013 - Facebook. All rights reserved. +* Copyright (c) 2013 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. *) open Utils diff --git a/infer/src/checkers/dataflow.mli b/infer/src/checkers/dataflow.mli index 199beab4f..d9b30749d 100644 --- a/infer/src/checkers/dataflow.mli +++ b/infer/src/checkers/dataflow.mli @@ -1,5 +1,10 @@ (* -* Copyright (c) 2013 - Facebook. All rights reserved. +* Copyright (c) 2013 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. *) type throws = diff --git a/infer/src/checkers/eradicate.ml b/infer/src/checkers/eradicate.ml index 06636dcb1..f84b00b13 100644 --- a/infer/src/checkers/eradicate.ml +++ b/infer/src/checkers/eradicate.ml @@ -1,5 +1,10 @@ (* -* Copyright (c) 2013 - Facebook. All rights reserved. +* Copyright (c) 2013 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. *) (** Eradicate NPEs. *) diff --git a/infer/src/checkers/eradicate.mli b/infer/src/checkers/eradicate.mli index 16c6e1fca..8f4a322a9 100644 --- a/infer/src/checkers/eradicate.mli +++ b/infer/src/checkers/eradicate.mli @@ -1,5 +1,10 @@ (* -* Copyright (c) 2013 - Facebook. All rights reserved. +* Copyright (c) 2013 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. *) (** Eradicate NPEs. *) diff --git a/infer/src/checkers/eradicateChecks.ml b/infer/src/checkers/eradicateChecks.ml index 7d4c7feaa..4dc6977a3 100644 --- a/infer/src/checkers/eradicateChecks.ml +++ b/infer/src/checkers/eradicateChecks.ml @@ -1,5 +1,10 @@ (* -* Copyright (c) 2014 - Facebook. All rights reserved. +* Copyright (c) 2014 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. *) open Utils diff --git a/infer/src/checkers/idenv.ml b/infer/src/checkers/idenv.ml index 63a1151f2..c3c634deb 100644 --- a/infer/src/checkers/idenv.ml +++ b/infer/src/checkers/idenv.ml @@ -1,5 +1,10 @@ (* -* Copyright (c) 2013 - Facebook. All rights reserved. +* Copyright (c) 2013 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. *) (** Environment for temporary identifiers used in instructions. diff --git a/infer/src/checkers/idenv.mli b/infer/src/checkers/idenv.mli index 77971473e..f4f587090 100644 --- a/infer/src/checkers/idenv.mli +++ b/infer/src/checkers/idenv.mli @@ -1,5 +1,10 @@ (* -* Copyright (c) 2013 - Facebook. All rights reserved. +* Copyright (c) 2013 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. *) (** Environment for temporary identifiers used in instructions. diff --git a/infer/src/checkers/immutableChecker.ml b/infer/src/checkers/immutableChecker.ml index 113d7d6b4..cb04b5a21 100644 --- a/infer/src/checkers/immutableChecker.ml +++ b/infer/src/checkers/immutableChecker.ml @@ -1,5 +1,10 @@ (* -* Copyright (c) 2013 - Facebook. All rights reserved. +* Copyright (c) 2013 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. *) module L = Logging diff --git a/infer/src/checkers/immutableChecker.mli b/infer/src/checkers/immutableChecker.mli index b2361b072..a955c62db 100644 --- a/infer/src/checkers/immutableChecker.mli +++ b/infer/src/checkers/immutableChecker.mli @@ -1,5 +1,10 @@ (* - * Copyright (c) 2013 - Facebook. All rights reserved. +* Copyright (c) 2013 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. *) val callback_check_immutable_cast : Callbacks.proc_callback_t diff --git a/infer/src/checkers/models.ml b/infer/src/checkers/models.ml index fec6c42e9..c7a55ba44 100644 --- a/infer/src/checkers/models.ml +++ b/infer/src/checkers/models.ml @@ -1,5 +1,10 @@ (* -* Copyright (c) 2013 - Facebook. All rights reserved. +* Copyright (c) 2013 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. *) open Utils diff --git a/infer/src/checkers/patternMatch.ml b/infer/src/checkers/patternMatch.ml index 2386f4620..abcc7e63c 100644 --- a/infer/src/checkers/patternMatch.ml +++ b/infer/src/checkers/patternMatch.ml @@ -1,5 +1,10 @@ (* -* Copyright (c) 2013 - Facebook. All rights reserved. +* Copyright (c) 2013 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. *) (** Module for Pattern matching. *) diff --git a/infer/src/checkers/patternMatch.mli b/infer/src/checkers/patternMatch.mli index 398ddcdd7..88dbe12af 100644 --- a/infer/src/checkers/patternMatch.mli +++ b/infer/src/checkers/patternMatch.mli @@ -1,5 +1,10 @@ (* -* Copyright (c) 2013 - Facebook. All rights reserved. +* Copyright (c) 2013 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. *) (** Module for Pattern matching. *) diff --git a/infer/src/checkers/printfArgs.ml b/infer/src/checkers/printfArgs.ml index 55c4ef860..9ee9dfacf 100644 --- a/infer/src/checkers/printfArgs.ml +++ b/infer/src/checkers/printfArgs.ml @@ -1,5 +1,10 @@ (* -* Copyright (c) 2013 - Facebook. All rights reserved. +* Copyright (c) 2013 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. *) module L = Logging diff --git a/infer/src/checkers/printfArgs.mli b/infer/src/checkers/printfArgs.mli index a504d98b6..53b8b1909 100644 --- a/infer/src/checkers/printfArgs.mli +++ b/infer/src/checkers/printfArgs.mli @@ -1,5 +1,10 @@ (* -* Copyright (c) 2013 - Facebook. All rights reserved. +* Copyright (c) 2013 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. *) diff --git a/infer/src/checkers/registerCheckers.ml b/infer/src/checkers/registerCheckers.ml index 3af2c5c2e..c3cee42e0 100644 --- a/infer/src/checkers/registerCheckers.ml +++ b/infer/src/checkers/registerCheckers.ml @@ -1,5 +1,10 @@ (* -* Copyright (c) 2013 - Facebook. All rights reserved. +* Copyright (c) 2013 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. *) (** Module for registering checkers. *) diff --git a/infer/src/checkers/repeatedCallsChecker.ml b/infer/src/checkers/repeatedCallsChecker.ml index a0008c7b6..d25c8e7a4 100644 --- a/infer/src/checkers/repeatedCallsChecker.ml +++ b/infer/src/checkers/repeatedCallsChecker.ml @@ -1,5 +1,10 @@ (* -* Copyright (c) 2014 - Facebook. All rights reserved. +* Copyright (c) 2014 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. *) module L = Logging diff --git a/infer/src/checkers/repeatedCallsChecker.mli b/infer/src/checkers/repeatedCallsChecker.mli index bc1c8f469..60827fc47 100644 --- a/infer/src/checkers/repeatedCallsChecker.mli +++ b/infer/src/checkers/repeatedCallsChecker.mli @@ -1,5 +1,10 @@ (* - * Copyright (c) 2014 - Facebook. All rights reserved. +* Copyright (c) 2014 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. *) val callback_check_repeated_calls : Callbacks.proc_callback_t diff --git a/infer/src/checkers/sqlChecker.ml b/infer/src/checkers/sqlChecker.ml index 95824ba01..0243f6cf1 100644 --- a/infer/src/checkers/sqlChecker.ml +++ b/infer/src/checkers/sqlChecker.ml @@ -1,5 +1,10 @@ (* -* Copyright (c) 2014 - Facebook. All rights reserved. +* Copyright (c) 2014 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. *) open Utils diff --git a/infer/src/checkers/sqlChecker.mli b/infer/src/checkers/sqlChecker.mli index 0c304fb11..2753b3f7e 100644 --- a/infer/src/checkers/sqlChecker.mli +++ b/infer/src/checkers/sqlChecker.mli @@ -1,5 +1,10 @@ (* -* Copyright (c) 2014 - Facebook. All rights reserved. +* Copyright (c) 2014 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. *) val callback_sql : Callbacks.proc_callback_t diff --git a/infer/src/checkers/sql_examples/Test.java b/infer/src/checkers/sql_examples/Test.java index 3857853f6..81a0fda01 100644 --- a/infer/src/checkers/sql_examples/Test.java +++ b/infer/src/checkers/sql_examples/Test.java @@ -1,3 +1,12 @@ +/* +* Copyright (c) 2015 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. +*/ + class Test { public void select() { diff --git a/infer/src/checkers/typeAnnotation.ml b/infer/src/checkers/typeAnnotation.ml index 5b0b29495..227f37f18 100644 --- a/infer/src/checkers/typeAnnotation.ml +++ b/infer/src/checkers/typeAnnotation.ml @@ -1,5 +1,10 @@ (* -* Copyright (c) 2014 - Facebook. All rights reserved. +* Copyright (c) 2014 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. *) module L = Logging diff --git a/infer/src/checkers/typeAnnotation.mli b/infer/src/checkers/typeAnnotation.mli index 42880270e..b15433113 100644 --- a/infer/src/checkers/typeAnnotation.mli +++ b/infer/src/checkers/typeAnnotation.mli @@ -1,5 +1,10 @@ (* -* Copyright (c) 2014 - Facebook. All rights reserved. +* Copyright (c) 2014 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. *) (** Nodule to represent annotations on types. *) diff --git a/infer/src/checkers/typeCheck.ml b/infer/src/checkers/typeCheck.ml index 3f02535f5..8c1830ff9 100644 --- a/infer/src/checkers/typeCheck.ml +++ b/infer/src/checkers/typeCheck.ml @@ -1,5 +1,10 @@ (* -* Copyright (c) 2014 - Facebook. All rights reserved. +* Copyright (c) 2014 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. *) open Utils diff --git a/infer/src/checkers/typeCheck.mli b/infer/src/checkers/typeCheck.mli index 5858951ef..54fefe7ab 100644 --- a/infer/src/checkers/typeCheck.mli +++ b/infer/src/checkers/typeCheck.mli @@ -1,5 +1,10 @@ (* -* Copyright (c) 2014 - Facebook. All rights reserved. +* Copyright (c) 2014 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. *) diff --git a/infer/src/checkers/typeErr.ml b/infer/src/checkers/typeErr.ml index 28e408d11..b62edfc27 100644 --- a/infer/src/checkers/typeErr.ml +++ b/infer/src/checkers/typeErr.ml @@ -1,5 +1,10 @@ (* -* Copyright (c) 2014 - Facebook. All rights reserved. +* Copyright (c) 2014 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. *) module L = Logging diff --git a/infer/src/checkers/typeErr.mli b/infer/src/checkers/typeErr.mli index 7c1d8ed12..47a7ed399 100644 --- a/infer/src/checkers/typeErr.mli +++ b/infer/src/checkers/typeErr.mli @@ -1,5 +1,10 @@ (* -* Copyright (c) 2014 - Facebook. All rights reserved. +* Copyright (c) 2014 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. *) diff --git a/infer/src/checkers/typeOrigin.ml b/infer/src/checkers/typeOrigin.ml index 7cdb6b983..bd2ae6516 100644 --- a/infer/src/checkers/typeOrigin.ml +++ b/infer/src/checkers/typeOrigin.ml @@ -1,5 +1,10 @@ (* -* Copyright (c) 2014 - Facebook. All rights reserved. +* Copyright (c) 2014 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. *) module L = Logging diff --git a/infer/src/checkers/typeOrigin.mli b/infer/src/checkers/typeOrigin.mli index 4bae281bb..76bc40fd8 100644 --- a/infer/src/checkers/typeOrigin.mli +++ b/infer/src/checkers/typeOrigin.mli @@ -1,5 +1,10 @@ (* -* Copyright (c) 2014 - Facebook. All rights reserved. +* Copyright (c) 2014 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. *) diff --git a/infer/src/checkers/typeState.ml b/infer/src/checkers/typeState.ml index 6b1870d59..f79fde4a7 100644 --- a/infer/src/checkers/typeState.ml +++ b/infer/src/checkers/typeState.ml @@ -1,5 +1,10 @@ (* -* Copyright (c) 2014 - Facebook. All rights reserved. +* Copyright (c) 2014 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. *) module L = Logging diff --git a/infer/src/checkers/typeState.mli b/infer/src/checkers/typeState.mli index 74f01d659..4b259a704 100644 --- a/infer/src/checkers/typeState.mli +++ b/infer/src/checkers/typeState.mli @@ -1,5 +1,10 @@ (* -* Copyright (c) 2014 - Facebook. All rights reserved. +* Copyright (c) 2014 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. *) (** Module for typestates: maps from expressions to annotated types, with extensions. *) diff --git a/infer/src/clang/ast_expressions.ml b/infer/src/clang/ast_expressions.ml index 72f2ef4e3..12cefcb9e 100644 --- a/infer/src/clang/ast_expressions.ml +++ b/infer/src/clang/ast_expressions.ml @@ -1,6 +1,10 @@ (* -* Copyright (c) 2013 - Facebook. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. *) open Clang_ast_t diff --git a/infer/src/clang/ast_expressions.mli b/infer/src/clang/ast_expressions.mli index 0dde47fba..b7450a780 100644 --- a/infer/src/clang/ast_expressions.mli +++ b/infer/src/clang/ast_expressions.mli @@ -1,6 +1,10 @@ (* -* Copyright (c) 2013 - Facebook. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. *) open Clang_ast_t diff --git a/infer/src/clang/ast_lexer.mll b/infer/src/clang/ast_lexer.mll index 46ca24b62..9dd17705a 100644 --- a/infer/src/clang/ast_lexer.mll +++ b/infer/src/clang/ast_lexer.mll @@ -1,6 +1,10 @@ (* -* Copyright (c) 2013- Facebook. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. *) (* Lexer to support a parser of types *) diff --git a/infer/src/clang/cArithmetic_trans.ml b/infer/src/clang/cArithmetic_trans.ml index 2f44f9332..08b7dae77 100644 --- a/infer/src/clang/cArithmetic_trans.ml +++ b/infer/src/clang/cArithmetic_trans.ml @@ -1,6 +1,10 @@ (* -* Copyright (c) 2013 - Facebook. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. *) (** Utility module for translating unary and binary operations and compound assignments *) diff --git a/infer/src/clang/cArithmetic_trans.mli b/infer/src/clang/cArithmetic_trans.mli index af8e1632a..610aa2658 100644 --- a/infer/src/clang/cArithmetic_trans.mli +++ b/infer/src/clang/cArithmetic_trans.mli @@ -1,6 +1,10 @@ (* -* Copyright (c) 2013 - Facebook. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. *) (** Utility module for translating unary and binary operations and compound assignments *) diff --git a/infer/src/clang/cAstProcessor.ml b/infer/src/clang/cAstProcessor.ml index 38d021b8b..6768072de 100644 --- a/infer/src/clang/cAstProcessor.ml +++ b/infer/src/clang/cAstProcessor.ml @@ -1,6 +1,10 @@ (* -* Copyright (c) 2015 - Facebook. +* Copyright (c) 2015 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. *) (** Module to preprocess location information in the AST. diff --git a/infer/src/clang/cAstProcessor.mli b/infer/src/clang/cAstProcessor.mli index 0694663e0..7f04e7e8a 100644 --- a/infer/src/clang/cAstProcessor.mli +++ b/infer/src/clang/cAstProcessor.mli @@ -1,6 +1,10 @@ (* -* Copyright (c) 2015 - Facebook. +* Copyright (c) 2015 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. *) (** Module to preprocess location information in the AST. diff --git a/infer/src/clang/cContext.ml b/infer/src/clang/cContext.ml index 256f833d5..b836e40b9 100644 --- a/infer/src/clang/cContext.ml +++ b/infer/src/clang/cContext.ml @@ -1,6 +1,10 @@ (* -* Copyright (c) 2013 - Facebook. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. *) (** Contains current class and current method to be translated as well as local variables, *) diff --git a/infer/src/clang/cContext.mli b/infer/src/clang/cContext.mli index 53627009f..d76ffe9c3 100644 --- a/infer/src/clang/cContext.mli +++ b/infer/src/clang/cContext.mli @@ -1,6 +1,10 @@ (* -* Copyright (c) 2013 - Facebook. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. *) (** Contains current class and current method to be translated as well as local variables, *) diff --git a/infer/src/clang/cEnum_decl.ml b/infer/src/clang/cEnum_decl.ml index 95d20bc2c..e45bc6113 100644 --- a/infer/src/clang/cEnum_decl.ml +++ b/infer/src/clang/cEnum_decl.ml @@ -1,6 +1,10 @@ (* -* Copyright (c) 2013 - Facebook. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. *) (** Translate an enumeration declaration by adding it to the tenv and *) diff --git a/infer/src/clang/cEnum_decl.mli b/infer/src/clang/cEnum_decl.mli index 7bbf43e22..a156a64da 100644 --- a/infer/src/clang/cEnum_decl.mli +++ b/infer/src/clang/cEnum_decl.mli @@ -1,6 +1,10 @@ (* -* Copyright (c) 2013 - Facebook. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. *) (** Translate an enumeration declaration by adding it to the tenv and *) diff --git a/infer/src/clang/cField_decl.ml b/infer/src/clang/cField_decl.ml index 11ecf7837..44c66e583 100644 --- a/infer/src/clang/cField_decl.ml +++ b/infer/src/clang/cField_decl.ml @@ -1,6 +1,10 @@ (* -* Copyright (c) 2013 - Facebook. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. *) (** Utility module to retrieve fields of structs of classes *) diff --git a/infer/src/clang/cField_decl.mli b/infer/src/clang/cField_decl.mli index 28c5525e2..4517abb21 100644 --- a/infer/src/clang/cField_decl.mli +++ b/infer/src/clang/cField_decl.mli @@ -1,6 +1,10 @@ (* -* Copyright (c) 2013 - Facebook. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. *) (** Utility module to retrieve fields of structs of classes *) @@ -11,4 +15,4 @@ val get_fields : Sil.tenv -> CContext.curr_class -> Clang_ast_t.decl list -> val fields_superclass : Sil.tenv -> Clang_ast_t.obj_c_interface_decl_info -> (Ident.fieldname * Sil.typ * Sil.item_annotation) list -val mk_class_field_name : string -> string -> Ident.fieldname \ No newline at end of file +val mk_class_field_name : string -> string -> Ident.fieldname diff --git a/infer/src/clang/cFrontend.ml b/infer/src/clang/cFrontend.ml index c872754da..617680d82 100644 --- a/infer/src/clang/cFrontend.ml +++ b/infer/src/clang/cFrontend.ml @@ -1,6 +1,10 @@ (* -* Copyright (c) 2013 - Facebook. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. *) (** Translate one file into a cfg. Create a tenv, cg and cfg file for a source file *) diff --git a/infer/src/clang/cFrontend.mli b/infer/src/clang/cFrontend.mli index e1a16789f..01a46fbbb 100644 --- a/infer/src/clang/cFrontend.mli +++ b/infer/src/clang/cFrontend.mli @@ -1,6 +1,10 @@ (* -* Copyright (c) 2013 - Facebook. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. *) (** Translate one file into a cfg. Create a tenv, cg and cfg file for a source file *) @@ -10,4 +14,4 @@ (** code of those functions and methods to the cfg *) -val do_source_file : DB.source_file -> Clang_ast_t.decl -> unit \ No newline at end of file +val do_source_file : DB.source_file -> Clang_ast_t.decl -> unit diff --git a/infer/src/clang/cFrontend_config.ml b/infer/src/clang/cFrontend_config.ml index 8a6d693ed..d3a3ea0db 100644 --- a/infer/src/clang/cFrontend_config.ml +++ b/infer/src/clang/cFrontend_config.ml @@ -1,6 +1,10 @@ (* -* Copyright (c) 2013 - Facebook. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. *) (** Module that contains constants and variables used in the frontend *) diff --git a/infer/src/clang/cFrontend_config.mli b/infer/src/clang/cFrontend_config.mli index 63a8e38fd..6c9c89db0 100644 --- a/infer/src/clang/cFrontend_config.mli +++ b/infer/src/clang/cFrontend_config.mli @@ -1,6 +1,10 @@ (* -* Copyright (c) 2013 - Facebook. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. *) (** Module that contains constants and variables used in the frontend *) diff --git a/infer/src/clang/cFrontend_utils.ml b/infer/src/clang/cFrontend_utils.ml index d1e0df246..13f530af1 100644 --- a/infer/src/clang/cFrontend_utils.ml +++ b/infer/src/clang/cFrontend_utils.ml @@ -1,6 +1,10 @@ (* -* Copyright (c) 2013 - Facebook. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. *) (** Module for utility functions for the whole frontend. Includes functions for printing, *) diff --git a/infer/src/clang/cFrontend_utils.mli b/infer/src/clang/cFrontend_utils.mli index e2b0649d8..11ba308be 100644 --- a/infer/src/clang/cFrontend_utils.mli +++ b/infer/src/clang/cFrontend_utils.mli @@ -1,6 +1,10 @@ (* -* Copyright (c) 2013 - Facebook. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. *) (** Module for utility functions for the whole frontend. Includes functions for printing, *) diff --git a/infer/src/clang/cGen_trans.ml b/infer/src/clang/cGen_trans.ml index 001097917..93ea23be5 100644 --- a/infer/src/clang/cGen_trans.ml +++ b/infer/src/clang/cGen_trans.ml @@ -1,10 +1,14 @@ (* -* Copyright (c) 2013 - Facebook. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. *) module rec CTransImpl : CTrans.CTrans = CTrans.CTrans_funct(CMethod_declImpl) and CMethod_declImpl : CMethod_decl.CMethod_decl = - CMethod_decl.CMethod_decl_funct(CTransImpl) \ No newline at end of file + CMethod_decl.CMethod_decl_funct(CTransImpl) diff --git a/infer/src/clang/cGlobal_vars.ml b/infer/src/clang/cGlobal_vars.ml index 762574d79..89a8d6620 100644 --- a/infer/src/clang/cGlobal_vars.ml +++ b/infer/src/clang/cGlobal_vars.ml @@ -1,6 +1,10 @@ (* -* Copyright (c) 2013 - Facebook. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. *) open CFrontend_utils diff --git a/infer/src/clang/cGlobal_vars.mli b/infer/src/clang/cGlobal_vars.mli index 429d50ee2..cb092e2b3 100644 --- a/infer/src/clang/cGlobal_vars.mli +++ b/infer/src/clang/cGlobal_vars.mli @@ -1,6 +1,10 @@ (* -* Copyright (c) 2013 - Facebook. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. *) type t diff --git a/infer/src/clang/cLocation.ml b/infer/src/clang/cLocation.ml index cf8ec1a6c..92b06179e 100644 --- a/infer/src/clang/cLocation.ml +++ b/infer/src/clang/cLocation.ml @@ -1,6 +1,10 @@ (* -* Copyright (c) 2013 - Facebook. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. *) (** Module for function to retrieve the location (file, line, etc) of instructions *) diff --git a/infer/src/clang/cLocation.mli b/infer/src/clang/cLocation.mli index 3fe5edf79..43c88e4c6 100644 --- a/infer/src/clang/cLocation.mli +++ b/infer/src/clang/cLocation.mli @@ -1,6 +1,10 @@ (* -* Copyright (c) 2013 - Facebook. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. *) (** Module for function to retrieve the location (file, line, etc) of instructions *) diff --git a/infer/src/clang/cMain.ml b/infer/src/clang/cMain.ml index 1b79ce771..6d34f2175 100644 --- a/infer/src/clang/cMain.ml +++ b/infer/src/clang/cMain.ml @@ -1,6 +1,10 @@ (* -* Copyright (c) 2013 - Facebook. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. *) (* Take as input an ast file and a C or ObjectiveC file such that the ast file diff --git a/infer/src/clang/cMain.mli b/infer/src/clang/cMain.mli index d5d6b29c9..aae7cd700 100644 --- a/infer/src/clang/cMain.mli +++ b/infer/src/clang/cMain.mli @@ -1,6 +1,10 @@ (* -* Copyright (c) 2013 - Facebook. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. *) (** Main module of InferClang. Take as input AST files produced by clang during compilation *) diff --git a/infer/src/clang/cMethod_decl.ml b/infer/src/clang/cMethod_decl.ml index 74b118747..4433a635d 100644 --- a/infer/src/clang/cMethod_decl.ml +++ b/infer/src/clang/cMethod_decl.ml @@ -1,6 +1,10 @@ (* -* Copyright (c) 2013 - Facebook. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. *) (** Process methods or functions declarations by adding them to the cfg. *) diff --git a/infer/src/clang/cMethod_decl.mli b/infer/src/clang/cMethod_decl.mli index 53a132871..d242b78a2 100644 --- a/infer/src/clang/cMethod_decl.mli +++ b/infer/src/clang/cMethod_decl.mli @@ -1,6 +1,10 @@ (* -* Copyright (c) 2013 - Facebook. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. *) (** Process methods or functions declarations by adding them to the cfg. *) diff --git a/infer/src/clang/cMethod_signature.ml b/infer/src/clang/cMethod_signature.ml index 49680e734..a849431af 100644 --- a/infer/src/clang/cMethod_signature.ml +++ b/infer/src/clang/cMethod_signature.ml @@ -1,6 +1,10 @@ (* -* Copyright (c) 2013 - Facebook. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. *) (** Define the signature of a method consisting of its name, its arguments, *) diff --git a/infer/src/clang/cMethod_signature.mli b/infer/src/clang/cMethod_signature.mli index 3385fbdd3..21f807e5e 100644 --- a/infer/src/clang/cMethod_signature.mli +++ b/infer/src/clang/cMethod_signature.mli @@ -1,6 +1,10 @@ (* -* Copyright (c) 2013 - Facebook. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. *) (** Define the signature of a method consisting of its name, its arguments, *) diff --git a/infer/src/clang/cMethod_trans.ml b/infer/src/clang/cMethod_trans.ml index 7b5a3f577..bfe5e8b2b 100644 --- a/infer/src/clang/cMethod_trans.ml +++ b/infer/src/clang/cMethod_trans.ml @@ -1,6 +1,10 @@ (* -* Copyright (c) 2013 - Facebook. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. *) (** Methods for creating a procdesc from a method or function declaration *) diff --git a/infer/src/clang/cMethod_trans.mli b/infer/src/clang/cMethod_trans.mli index 186e2ef34..7d9b63640 100644 --- a/infer/src/clang/cMethod_trans.mli +++ b/infer/src/clang/cMethod_trans.mli @@ -1,6 +1,10 @@ (* -* Copyright (c) 2013 - Facebook. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. *) (** Methods for creating a procdesc from a method or function declaration diff --git a/infer/src/clang/cModule_type.ml b/infer/src/clang/cModule_type.ml index f1856f123..21a834dd0 100644 --- a/infer/src/clang/cModule_type.ml +++ b/infer/src/clang/cModule_type.ml @@ -1,6 +1,10 @@ (* -* Copyright (c) 2013 - Facebook. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. *) module type CTranslation = diff --git a/infer/src/clang/cTrans.ml b/infer/src/clang/cTrans.ml index f3ee1950e..908b4957c 100644 --- a/infer/src/clang/cTrans.ml +++ b/infer/src/clang/cTrans.ml @@ -1,6 +1,10 @@ (* -* Copyright (c) 2013 - Facebook. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. *) (** Translates instructions: (statements and expressions) from the ast into sil *) diff --git a/infer/src/clang/cTrans.mli b/infer/src/clang/cTrans.mli index 0f07af634..7ce3660f0 100644 --- a/infer/src/clang/cTrans.mli +++ b/infer/src/clang/cTrans.mli @@ -1,6 +1,10 @@ (* -* Copyright (c) 2013 - Facebook. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. *) module type CTrans = sig diff --git a/infer/src/clang/cTrans_models.ml b/infer/src/clang/cTrans_models.ml index 40c8ccbea..d725616da 100644 --- a/infer/src/clang/cTrans_models.ml +++ b/infer/src/clang/cTrans_models.ml @@ -1,6 +1,10 @@ (* -* Copyright (c) 2013 - Facebook. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. *) open Utils diff --git a/infer/src/clang/cTrans_models.mli b/infer/src/clang/cTrans_models.mli index ffab9c5e1..7583a4aad 100644 --- a/infer/src/clang/cTrans_models.mli +++ b/infer/src/clang/cTrans_models.mli @@ -1,6 +1,10 @@ (* -* Copyright (c) 2013 - Facebook. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. *) val is_cf_non_null_alloc : Procname.t option -> bool diff --git a/infer/src/clang/cTrans_utils.ml b/infer/src/clang/cTrans_utils.ml index bc5d74a2f..e6ec89187 100644 --- a/infer/src/clang/cTrans_utils.ml +++ b/infer/src/clang/cTrans_utils.ml @@ -1,6 +1,10 @@ (* -* Copyright (c) 2013 - Facebook. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. *) (** Utility methods to support the translation of clang ast constructs into sil instructions. *) diff --git a/infer/src/clang/cTrans_utils.mli b/infer/src/clang/cTrans_utils.mli index 6e26d104c..7317a2d0d 100644 --- a/infer/src/clang/cTrans_utils.mli +++ b/infer/src/clang/cTrans_utils.mli @@ -1,6 +1,10 @@ (* -* Copyright (c) 2013 - Facebook. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. *) (** Utility methods to support the translation of clang ast constructs into sil instructions. *) diff --git a/infer/src/clang/cTypes.ml b/infer/src/clang/cTypes.ml index 74eada090..e8b551d91 100644 --- a/infer/src/clang/cTypes.ml +++ b/infer/src/clang/cTypes.ml @@ -1,6 +1,10 @@ (* -* Copyright (c) 2013 - Facebook. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. *) (** Utility module for retrieving types *) diff --git a/infer/src/clang/cTypes.mli b/infer/src/clang/cTypes.mli index 8132f606c..2f0551fbe 100644 --- a/infer/src/clang/cTypes.mli +++ b/infer/src/clang/cTypes.mli @@ -1,6 +1,10 @@ (* -* Copyright (c) 2013 - Facebook. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. *) (** Utility module for retrieving types *) diff --git a/infer/src/clang/cTypes_decl.ml b/infer/src/clang/cTypes_decl.ml index 17b9d7169..d14b05234 100644 --- a/infer/src/clang/cTypes_decl.ml +++ b/infer/src/clang/cTypes_decl.ml @@ -1,6 +1,10 @@ (* -* Copyright (c) 2013 - Facebook. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. *) (** Processes types and record declarations by adding them to the tenv *) diff --git a/infer/src/clang/cTypes_decl.mli b/infer/src/clang/cTypes_decl.mli index 1c62002f7..26766da88 100644 --- a/infer/src/clang/cTypes_decl.mli +++ b/infer/src/clang/cTypes_decl.mli @@ -1,6 +1,10 @@ (* -* Copyright (c) 2013 - Facebook. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. *) (** Processes types and record declarations by adding them to the tenv *) diff --git a/infer/src/clang/cTypes_parser.mly b/infer/src/clang/cTypes_parser.mly index b20fb8fe3..d50dc2441 100644 --- a/infer/src/clang/cTypes_parser.mly +++ b/infer/src/clang/cTypes_parser.mly @@ -1,6 +1,10 @@ /* -* Copyright (c) 2013- Facebook. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ /* Parser for types in the ast of clang */ diff --git a/infer/src/clang/cVar_decl.ml b/infer/src/clang/cVar_decl.ml index 158f3702e..699e28247 100644 --- a/infer/src/clang/cVar_decl.ml +++ b/infer/src/clang/cVar_decl.ml @@ -1,6 +1,10 @@ (* -* Copyright (c) 2013 - Facebook. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. *) (** Process variable declarations by saving them as local or global variables. *) diff --git a/infer/src/clang/cVar_decl.mli b/infer/src/clang/cVar_decl.mli index ec17ab9cc..c3c27bd59 100644 --- a/infer/src/clang/cVar_decl.mli +++ b/infer/src/clang/cVar_decl.mli @@ -1,6 +1,10 @@ (* -* Copyright (c) 2013 - Facebook. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. *) (** Process variable declarations by saving them as local or global variables. *) diff --git a/infer/src/clang/objcCategory_decl.ml b/infer/src/clang/objcCategory_decl.ml index bc3c6fcab..0d206b6c4 100644 --- a/infer/src/clang/objcCategory_decl.ml +++ b/infer/src/clang/objcCategory_decl.ml @@ -1,6 +1,10 @@ (* -* Copyright (c) 2013 - Facebook. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. *) open Utils diff --git a/infer/src/clang/objcCategory_decl.mli b/infer/src/clang/objcCategory_decl.mli index ce89855cb..f4fa2a483 100644 --- a/infer/src/clang/objcCategory_decl.mli +++ b/infer/src/clang/objcCategory_decl.mli @@ -1,6 +1,10 @@ (* -* Copyright (c) 2013 - Facebook. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. *) (** In this module an ObjC category declaration or implementation is processed. The category *) diff --git a/infer/src/clang/objcInterface_decl.ml b/infer/src/clang/objcInterface_decl.ml index 57364a8d0..14d87fa25 100644 --- a/infer/src/clang/objcInterface_decl.ml +++ b/infer/src/clang/objcInterface_decl.ml @@ -1,6 +1,10 @@ (* -* Copyright (c) 2013 - Facebook. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. *) (** In this module an ObjC interface declaration or implementation is processed. The class *) diff --git a/infer/src/clang/objcInterface_decl.mli b/infer/src/clang/objcInterface_decl.mli index 68b199a34..8381c9d76 100644 --- a/infer/src/clang/objcInterface_decl.mli +++ b/infer/src/clang/objcInterface_decl.mli @@ -1,6 +1,10 @@ (* -* Copyright (c) 2013 - Facebook. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. *) (** In this module an ObjC interface declaration is processed. The class *) diff --git a/infer/src/clang/objcProperty_decl.ml b/infer/src/clang/objcProperty_decl.ml index 3dcaa46a5..5d7a3b088 100644 --- a/infer/src/clang/objcProperty_decl.ml +++ b/infer/src/clang/objcProperty_decl.ml @@ -1,6 +1,10 @@ (* -* Copyright (c) 2013 - Facebook. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. *) (** Process properties by creating their getters and setters in the case that they need to be syntethized *) diff --git a/infer/src/clang/objcProperty_decl.mli b/infer/src/clang/objcProperty_decl.mli index 081e6a894..8a0a52a96 100644 --- a/infer/src/clang/objcProperty_decl.mli +++ b/infer/src/clang/objcProperty_decl.mli @@ -1,6 +1,10 @@ (* -* Copyright (c) 2013 - Facebook. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. *) (** Process properties by creating their getters and setters in the case that they need to be syntethized *) diff --git a/infer/src/clang/objcProtocol_decl.ml b/infer/src/clang/objcProtocol_decl.ml index 09c641afe..0805a41e9 100644 --- a/infer/src/clang/objcProtocol_decl.ml +++ b/infer/src/clang/objcProtocol_decl.ml @@ -1,6 +1,10 @@ (* -* Copyright (c) 2013 - Facebook. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. *) open Utils diff --git a/infer/src/clang/objcProtocol_decl.mli b/infer/src/clang/objcProtocol_decl.mli index 27bfe4176..78c9ecc5c 100644 --- a/infer/src/clang/objcProtocol_decl.mli +++ b/infer/src/clang/objcProtocol_decl.mli @@ -1,6 +1,10 @@ (* -* Copyright (c) 2013 - Facebook. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. *) (** In this module an ObjC protocol declaration or implementation is processed. The protocol *) diff --git a/infer/src/clang/plugin/CMakeLists.txt b/infer/src/clang/plugin/CMakeLists.txt index 93d32ac57..850cb8792 100644 --- a/infer/src/clang/plugin/CMakeLists.txt +++ b/infer/src/clang/plugin/CMakeLists.txt @@ -1,4 +1,9 @@ -# Copyright 2004-present Facebook. All Rights Reserved. +# Copyright (c) 2004 - present Facebook, Inc. +# All rights reserved. +# +# This source code is licensed under the BSD style license found in the +# LICENSE file in the root directory of this source tree. An additional grant +# of patent rights can be found in the PATENTS file in the same directory. set(MODULE TRUE) diff --git a/infer/src/clang/plugin/InferPlugin.cpp b/infer/src/clang/plugin/InferPlugin.cpp index 8cfbc3c78..9bec933a9 100644 --- a/infer/src/clang/plugin/InferPlugin.cpp +++ b/infer/src/clang/plugin/InferPlugin.cpp @@ -1,5 +1,10 @@ /* - * Copyright 2004-present Facebook. All Rights Reserved. +* Copyright (c) 2004 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ #include "clang/Frontend/FrontendPluginRegistry.h" diff --git a/infer/src/clang/plugin/test/Makefile b/infer/src/clang/plugin/test/Makefile index e80c15f2e..581d35af1 100644 --- a/infer/src/clang/plugin/test/Makefile +++ b/infer/src/clang/plugin/test/Makefile @@ -1,4 +1,9 @@ -# Copyright 2004-present Facebook. All Rights Reserved. +# Copyright (c) 2004 - present Facebook, Inc. +# All rights reserved. +# +# This source code is licensed under the BSD style license found in the +# LICENSE file in the root directory of this source tree. An additional grant +# of patent rights can be found in the PATENTS file in the same directory. BD=~/clang-llvm/build all: diff --git a/infer/src/clang/plugin/test/test.cpp b/infer/src/clang/plugin/test/test.cpp index bfc711587..78135cc57 100644 --- a/infer/src/clang/plugin/test/test.cpp +++ b/infer/src/clang/plugin/test/test.cpp @@ -1,5 +1,10 @@ /* - * Copyright 2004-present Facebook. All Rights Reserved. +* Copyright (c) 2004 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ int main() { return 0; } diff --git a/infer/src/harness/androidFramework.ml b/infer/src/harness/androidFramework.ml index b9ce47c88..25cf267be 100644 --- a/infer/src/harness/androidFramework.ml +++ b/infer/src/harness/androidFramework.ml @@ -1,5 +1,10 @@ (* -* Copyright (c) 2013 - Facebook. All rights reserved. +* Copyright (c) 2013 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. *) module L = Logging diff --git a/infer/src/harness/androidFramework.mli b/infer/src/harness/androidFramework.mli index 565ca0477..647851d7a 100644 --- a/infer/src/harness/androidFramework.mli +++ b/infer/src/harness/androidFramework.mli @@ -1,5 +1,10 @@ (* -* Copyright (c) 2013 - Facebook. All rights reserved. +* Copyright (c) 2013 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. *) (** Android lifecycle types and their lifecycle methods that are called by the framework *) diff --git a/infer/src/harness/harness.ml b/infer/src/harness/harness.ml index c657c7dd5..26b827dad 100644 --- a/infer/src/harness/harness.ml +++ b/infer/src/harness/harness.ml @@ -1,5 +1,10 @@ (* -* Copyright (c) 2013 - Facebook. All rights reserved. +* Copyright (c) 2013 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. *) module L = Logging diff --git a/infer/src/harness/harness.mli b/infer/src/harness/harness.mli index b9d2d04ea..dcf5befc9 100644 --- a/infer/src/harness/harness.mli +++ b/infer/src/harness/harness.mli @@ -1,5 +1,10 @@ (* -* Copyright (c) 2013 - Facebook. All rights reserved. +* Copyright (c) 2013 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. *) (** Automatically create a harness method to exercise code under test *) diff --git a/infer/src/harness/inhabit.ml b/infer/src/harness/inhabit.ml index 381fdc4b6..189575f6a 100644 --- a/infer/src/harness/inhabit.ml +++ b/infer/src/harness/inhabit.ml @@ -1,5 +1,10 @@ (* -* Copyright (c) 2013 - Facebook. All rights reserved. +* Copyright (c) 2013 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. *) (** Generate a procedure that calls a given sequence of methods. Useful for harness/test diff --git a/infer/src/harness/inhabit.mli b/infer/src/harness/inhabit.mli index f34282d5e..0a6c96baf 100644 --- a/infer/src/harness/inhabit.mli +++ b/infer/src/harness/inhabit.mli @@ -1,5 +1,10 @@ (* -* Copyright (c) 2013 - Facebook. All rights reserved. +* Copyright (c) 2013 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. *) open Utils diff --git a/infer/src/harness/stacktrace.ml b/infer/src/harness/stacktrace.ml index b474fca1c..2883046b5 100644 --- a/infer/src/harness/stacktrace.ml +++ b/infer/src/harness/stacktrace.ml @@ -1,5 +1,10 @@ (* -* Copyright (c) 2013 - Facebook. All rights reserved. +* Copyright (c) 2013 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. *) (** Module for parsing stack traces and using them to guide Infer analysis *) diff --git a/infer/src/harness/stacktrace.mli b/infer/src/harness/stacktrace.mli index ad4c36205..6dee851ad 100644 --- a/infer/src/harness/stacktrace.mli +++ b/infer/src/harness/stacktrace.mli @@ -1,5 +1,10 @@ (* -* Copyright (c) 2013 - Facebook. All rights reserved. +* Copyright (c) 2013 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. *) (** Module for parsing stack traces and using them to guide Infer analysis *) diff --git a/infer/src/java/jAnnotation.ml b/infer/src/java/jAnnotation.ml index fcefb636c..70c4086b4 100644 --- a/infer/src/java/jAnnotation.ml +++ b/infer/src/java/jAnnotation.ml @@ -1,7 +1,11 @@ (* -* Copyright (c) 2009 -2013 Monoidics ltd. -* Copyright (c) 2013 - Facebook. +* Copyright (c) 2009 - 2013 Monoidics ltd. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. *) open Javalib_pack diff --git a/infer/src/java/jAnnotation.mli b/infer/src/java/jAnnotation.mli index 7326469f2..a43aa954c 100644 --- a/infer/src/java/jAnnotation.mli +++ b/infer/src/java/jAnnotation.mli @@ -1,7 +1,11 @@ (* -* Copyright (c) 2009 -2013 Monoidics ltd. -* Copyright (c) 2013 - Facebook. +* Copyright (c) 2009 - 2013 Monoidics ltd. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. *) open Javalib_pack diff --git a/infer/src/java/jClasspath.ml b/infer/src/java/jClasspath.ml index 129f3fcaf..5dc1d6df0 100644 --- a/infer/src/java/jClasspath.ml +++ b/infer/src/java/jClasspath.ml @@ -1,7 +1,11 @@ (* -* Copyright (c) 2009 -2013 Monoidics ltd. -* Copyright (c) 2013 - Facebook. +* Copyright (c) 2009 - 2013 Monoidics ltd. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. *) open Javalib_pack diff --git a/infer/src/java/jClasspath.mli b/infer/src/java/jClasspath.mli index 2d3f5bc2f..2dd79b63e 100644 --- a/infer/src/java/jClasspath.mli +++ b/infer/src/java/jClasspath.mli @@ -1,3 +1,13 @@ +(* +* Copyright (c) 2009 - 2013 Monoidics ltd. +* Copyright (c) 2013 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. +*) + open Javalib_pack open Sawja_pack diff --git a/infer/src/java/jConfig.ml b/infer/src/java/jConfig.ml index b0753f020..adf011cc2 100644 --- a/infer/src/java/jConfig.ml +++ b/infer/src/java/jConfig.ml @@ -1,7 +1,11 @@ (* -* Copyright (c) 2009 -2013 Monoidics ltd. -* Copyright (c) 2013 - Facebook. +* Copyright (c) 2009 - 2013 Monoidics ltd. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. *) open Javalib_pack diff --git a/infer/src/java/jContext.ml b/infer/src/java/jContext.ml index 36bbfc268..edd0d7503 100644 --- a/infer/src/java/jContext.ml +++ b/infer/src/java/jContext.ml @@ -1,3 +1,13 @@ +(* +* Copyright (c) 2009 - 2013 Monoidics ltd. +* Copyright (c) 2013 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. +*) + open Javalib_pack open Sawja_pack diff --git a/infer/src/java/jContext.mli b/infer/src/java/jContext.mli index 3d3686ace..a5d40f5ef 100644 --- a/infer/src/java/jContext.mli +++ b/infer/src/java/jContext.mli @@ -1,3 +1,13 @@ +(* +* Copyright (c) 2009 - 2013 Monoidics ltd. +* Copyright (c) 2013 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. +*) + open Javalib_pack open Sawja_pack diff --git a/infer/src/java/jFrontend.ml b/infer/src/java/jFrontend.ml index 63c8fec7f..1760ec7eb 100644 --- a/infer/src/java/jFrontend.ml +++ b/infer/src/java/jFrontend.ml @@ -1,7 +1,11 @@ (* -* Copyright (c) 2009 -2013 Monoidics ltd. -* Copyright (c) 2013 - Facebook. +* Copyright (c) 2009 - 2013 Monoidics ltd. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. *) open Javalib_pack diff --git a/infer/src/java/jFrontend.mli b/infer/src/java/jFrontend.mli index 33dcf0a8e..1f7f10798 100644 --- a/infer/src/java/jFrontend.mli +++ b/infer/src/java/jFrontend.mli @@ -1,7 +1,11 @@ (* -* Copyright (c) 2009 -2013 Monoidics ltd. -* Copyright (c) 2013 - Facebook. +* Copyright (c) 2009 - 2013 Monoidics ltd. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. *) open Javalib_pack diff --git a/infer/src/java/jMain.ml b/infer/src/java/jMain.ml index c80c8d890..9d81cd002 100644 --- a/infer/src/java/jMain.ml +++ b/infer/src/java/jMain.ml @@ -1,7 +1,11 @@ (* -* Copyright (c) 2009 -2013 Monoidics ltd. -* Copyright (c) 2013 - Facebook. +* Copyright (c) 2009 - 2013 Monoidics ltd. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. *) open Javalib_pack diff --git a/infer/src/java/jTrans.ml b/infer/src/java/jTrans.ml index 59d1bfc5a..e5c070097 100644 --- a/infer/src/java/jTrans.ml +++ b/infer/src/java/jTrans.ml @@ -1,7 +1,11 @@ (* -* Copyright (c) 2009 -2013 Monoidics ltd. -* Copyright (c) 2013 - Facebook. +* Copyright (c) 2009 - 2013 Monoidics ltd. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. *) open Javalib_pack diff --git a/infer/src/java/jTrans.mli b/infer/src/java/jTrans.mli index 25cb3a3c7..fc610cf5c 100644 --- a/infer/src/java/jTrans.mli +++ b/infer/src/java/jTrans.mli @@ -1,7 +1,11 @@ (* -* Copyright (c) 2009 -2013 Monoidics ltd. -* Copyright (c) 2013 - Facebook. +* Copyright (c) 2009 - 2013 Monoidics ltd. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. *) open Javalib_pack diff --git a/infer/src/java/jTransExn.ml b/infer/src/java/jTransExn.ml index 7b5c7e75a..10f73c5b0 100644 --- a/infer/src/java/jTransExn.ml +++ b/infer/src/java/jTransExn.ml @@ -1,7 +1,11 @@ (* -* Copyright (c) 2009 -2013 Monoidics ltd. -* Copyright (c) 2013 - Facebook. +* Copyright (c) 2009 - 2013 Monoidics ltd. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. *) open Javalib_pack diff --git a/infer/src/java/jTransExn.mli b/infer/src/java/jTransExn.mli index 7c7b433e5..dad2f6c34 100644 --- a/infer/src/java/jTransExn.mli +++ b/infer/src/java/jTransExn.mli @@ -1,3 +1,13 @@ +(* +* Copyright (c) 2009 - 2013 Monoidics ltd. +* Copyright (c) 2013 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. +*) + open Javalib_pack open Sawja_pack diff --git a/infer/src/java/jTransStaticField.ml b/infer/src/java/jTransStaticField.ml index 29250a905..c2dbea0e8 100644 --- a/infer/src/java/jTransStaticField.ml +++ b/infer/src/java/jTransStaticField.ml @@ -1,7 +1,11 @@ (* -* Copyright (c) 2009 -2013 Monoidics ltd. -* Copyright (c) 2013 - Facebook. +* Copyright (c) 2009 - 2013 Monoidics ltd. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. *) open Javalib_pack diff --git a/infer/src/java/jTransStaticField.mli b/infer/src/java/jTransStaticField.mli index b6db336ee..13e8a95e3 100644 --- a/infer/src/java/jTransStaticField.mli +++ b/infer/src/java/jTransStaticField.mli @@ -1,3 +1,12 @@ +(* +* Copyright (c) 2009 - 2013 Monoidics ltd. +* Copyright (c) 2013 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. +*) open Javalib_pack open Sawja_pack diff --git a/infer/src/java/jTransType.ml b/infer/src/java/jTransType.ml index 9b072a939..30838563c 100644 --- a/infer/src/java/jTransType.ml +++ b/infer/src/java/jTransType.ml @@ -1,3 +1,13 @@ +(* +* Copyright (c) 2009 - 2013 Monoidics ltd. +* Copyright (c) 2013 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. +*) + open Javalib_pack open Sawja_pack diff --git a/infer/src/java/jTransType.mli b/infer/src/java/jTransType.mli index f2052f667..ae6e28d63 100644 --- a/infer/src/java/jTransType.mli +++ b/infer/src/java/jTransType.mli @@ -1,3 +1,13 @@ +(* +* Copyright (c) 2009 - 2013 Monoidics ltd. +* Copyright (c) 2013 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. +*) + open Javalib_pack open Sawja_pack diff --git a/infer/src/java/jUtils.ml b/infer/src/java/jUtils.ml index acd8d0ae3..14078e269 100644 --- a/infer/src/java/jUtils.ml +++ b/infer/src/java/jUtils.ml @@ -1,7 +1,11 @@ (* -* Copyright (c) 2009 -2013 Monoidics ltd. -* Copyright (c) 2013 - Facebook. +* Copyright (c) 2009 - 2013 Monoidics ltd. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. *) open Javalib_pack diff --git a/infer/src/java/jUtils.mli b/infer/src/java/jUtils.mli index 6a5271288..6aaa60fba 100644 --- a/infer/src/java/jUtils.mli +++ b/infer/src/java/jUtils.mli @@ -1,7 +1,11 @@ (* -* Copyright (c) 2009 -2013 Monoidics ltd. -* Copyright (c) 2013 - Facebook. +* Copyright (c) 2009 - 2013 Monoidics ltd. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. *) open Javalib_pack diff --git a/infer/src/java/jVerbose.ml b/infer/src/java/jVerbose.ml index d82739412..99f617ad0 100644 --- a/infer/src/java/jVerbose.ml +++ b/infer/src/java/jVerbose.ml @@ -1,3 +1,13 @@ +(* +* Copyright (c) 2009 - 2013 Monoidics ltd. +* Copyright (c) 2013 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. +*) + type parsed_data = | Source of string | Class of string diff --git a/infer/src/java/jVerboseParser.mly b/infer/src/java/jVerboseParser.mly index 0cf47e64b..0c1f44491 100644 --- a/infer/src/java/jVerboseParser.mly +++ b/infer/src/java/jVerboseParser.mly @@ -1,3 +1,13 @@ +/* +* Copyright (c) 2009 - 2013 Monoidics ltd. +* Copyright (c) 2013 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. +*/ + %{ %} diff --git a/infer/src/llvm/ast.ml b/infer/src/llvm/ast.ml index 8fbb67b19..b9492f68b 100644 --- a/infer/src/llvm/ast.ml +++ b/infer/src/llvm/ast.ml @@ -1,6 +1,10 @@ (* - * Copyright (c) 2015 - Facebook. - * All rights reserved. +* Copyright (c) 2015 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. *) type prog = Prog of func_def list and func_def = FuncDef of string * typ option * (typ * string) list * instr list diff --git a/infer/src/llvm/lexer.mll b/infer/src/llvm/lexer.mll index e27e223bb..3f0f01fce 100644 --- a/infer/src/llvm/lexer.mll +++ b/infer/src/llvm/lexer.mll @@ -1,6 +1,10 @@ (* - * Copyright (c) 2015 - Facebook. - * All rights reserved. +* Copyright (c) 2015 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. *) { open Lexing diff --git a/infer/src/llvm/main.ml b/infer/src/llvm/main.ml index 11abcfea4..7eaf47fac 100644 --- a/infer/src/llvm/main.ml +++ b/infer/src/llvm/main.ml @@ -1,6 +1,10 @@ (* - * Copyright (c) 2015 - Facebook. - * All rights reserved. +* Copyright (c) 2015 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. *) open Lexing open Printf diff --git a/infer/src/llvm/parser.mly b/infer/src/llvm/parser.mly index 7179fcf00..906bdf595 100644 --- a/infer/src/llvm/parser.mly +++ b/infer/src/llvm/parser.mly @@ -1,6 +1,10 @@ (* - * Copyright (c) 2015 - Facebook. - * All rights reserved. +* Copyright (c) 2015 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. *) %{ open Ast diff --git a/infer/src/llvm/pretty.ml b/infer/src/llvm/pretty.ml index a2f295d41..dec28f346 100644 --- a/infer/src/llvm/pretty.ml +++ b/infer/src/llvm/pretty.ml @@ -1,6 +1,10 @@ (* - * Copyright (c) 2015 - Facebook. - * All rights reserved. +* Copyright (c) 2015 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. *) open Ast diff --git a/infer/src/opensource/facebook.ml b/infer/src/opensource/facebook.ml index e8d99d83e..c0507e61c 100644 --- a/infer/src/opensource/facebook.ml +++ b/infer/src/opensource/facebook.ml @@ -1,6 +1,10 @@ (* -* Copyright (c) 2014 - Facebook. +* Copyright (c) 2014 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. *) let register_checkers () = () diff --git a/infer/tests/codetoanalyze/c/errors/arithmetic/array_out_of_bounds.c b/infer/tests/codetoanalyze/c/errors/arithmetic/array_out_of_bounds.c index 3281ff6cc..ba7c16f84 100644 --- a/infer/tests/codetoanalyze/c/errors/arithmetic/array_out_of_bounds.c +++ b/infer/tests/codetoanalyze/c/errors/arithmetic/array_out_of_bounds.c @@ -1,6 +1,10 @@ /* - * Copyright (c) 2013 - Facebook. - * All rights reserved. +* Copyright (c) 2013 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ void bound_error() { diff --git a/infer/tests/codetoanalyze/c/errors/arithmetic/divide_by_zero.c b/infer/tests/codetoanalyze/c/errors/arithmetic/divide_by_zero.c index ca6d722ed..8adb2f358 100644 --- a/infer/tests/codetoanalyze/c/errors/arithmetic/divide_by_zero.c +++ b/infer/tests/codetoanalyze/c/errors/arithmetic/divide_by_zero.c @@ -1,6 +1,10 @@ /* - * Copyright (c) 2013 - Facebook. - * All rights reserved. +* Copyright (c) 2013 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ int divide_by_zero() { diff --git a/infer/tests/codetoanalyze/c/errors/assertions/assertion_failure.c b/infer/tests/codetoanalyze/c/errors/assertions/assertion_failure.c index 81d3b05c0..06622aeb1 100644 --- a/infer/tests/codetoanalyze/c/errors/assertions/assertion_failure.c +++ b/infer/tests/codetoanalyze/c/errors/assertions/assertion_failure.c @@ -1,6 +1,10 @@ /* -* Copyright (c) 2013- Facebook. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ #include diff --git a/infer/tests/codetoanalyze/c/errors/initialization/initlistexpr.c b/infer/tests/codetoanalyze/c/errors/initialization/initlistexpr.c index 8b8da3997..58a72a43c 100644 --- a/infer/tests/codetoanalyze/c/errors/initialization/initlistexpr.c +++ b/infer/tests/codetoanalyze/c/errors/initialization/initlistexpr.c @@ -1,6 +1,10 @@ /* - * Copyright (c) 2013 - Facebook. - * All rights reserved. +* Copyright (c) 2013 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ int divide_by_zero() { int t[2][3][2] = {{{1,1},{2,2},{3,3}},{{4,4},{5,5},{1,0}}}; diff --git a/infer/tests/codetoanalyze/c/errors/lists/lists.c b/infer/tests/codetoanalyze/c/errors/lists/lists.c index 4954fdf32..2e5890a98 100644 --- a/infer/tests/codetoanalyze/c/errors/lists/lists.c +++ b/infer/tests/codetoanalyze/c/errors/lists/lists.c @@ -1,6 +1,10 @@ /* - * Copyright (c) 2015 - Facebook. - * All rights reserved. +* Copyright (c) 2015 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ struct l2 { int b; diff --git a/infer/tests/codetoanalyze/c/errors/local_vars/local_vars.c b/infer/tests/codetoanalyze/c/errors/local_vars/local_vars.c index 23f577402..629d37fbf 100644 --- a/infer/tests/codetoanalyze/c/errors/local_vars/local_vars.c +++ b/infer/tests/codetoanalyze/c/errors/local_vars/local_vars.c @@ -1,6 +1,10 @@ /* -* Copyright (c) 2013- Facebook. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ diff --git a/infer/tests/codetoanalyze/c/errors/memory_leaks/test.c b/infer/tests/codetoanalyze/c/errors/memory_leaks/test.c index 588f43fd5..f5a1b4115 100644 --- a/infer/tests/codetoanalyze/c/errors/memory_leaks/test.c +++ b/infer/tests/codetoanalyze/c/errors/memory_leaks/test.c @@ -1,6 +1,10 @@ /* - * Copyright (c) 2013 - Facebook. - * All rights reserved. +* Copyright (c) 2013 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ #include diff --git a/infer/tests/codetoanalyze/c/errors/null_dereference/angelism.c b/infer/tests/codetoanalyze/c/errors/null_dereference/angelism.c index a933fc387..48f207077 100644 --- a/infer/tests/codetoanalyze/c/errors/null_dereference/angelism.c +++ b/infer/tests/codetoanalyze/c/errors/null_dereference/angelism.c @@ -1,6 +1,10 @@ /* - * Copyright (c) 2015 - Facebook. - * All rights reserved. +* Copyright (c) 2015 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ #include diff --git a/infer/tests/codetoanalyze/c/errors/null_dereference/getc.c b/infer/tests/codetoanalyze/c/errors/null_dereference/getc.c index abf51803d..56217c694 100644 --- a/infer/tests/codetoanalyze/c/errors/null_dereference/getc.c +++ b/infer/tests/codetoanalyze/c/errors/null_dereference/getc.c @@ -1,3 +1,12 @@ +/* +* Copyright (c) 2015 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. +*/ + #include #include diff --git a/infer/tests/codetoanalyze/c/errors/null_dereference/null_pointer_dereference.c b/infer/tests/codetoanalyze/c/errors/null_dereference/null_pointer_dereference.c index d1bbbc0b4..b60764a83 100644 --- a/infer/tests/codetoanalyze/c/errors/null_dereference/null_pointer_dereference.c +++ b/infer/tests/codetoanalyze/c/errors/null_dereference/null_pointer_dereference.c @@ -1,6 +1,10 @@ /* - * Copyright (c) 2015 - Facebook. - * All rights reserved. +* Copyright (c) 2015 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ #include diff --git a/infer/tests/codetoanalyze/c/errors/resource_leaks/leak.c b/infer/tests/codetoanalyze/c/errors/resource_leaks/leak.c index d01852ff0..9688a452e 100644 --- a/infer/tests/codetoanalyze/c/errors/resource_leaks/leak.c +++ b/infer/tests/codetoanalyze/c/errors/resource_leaks/leak.c @@ -1,6 +1,10 @@ /* - * Copyright (c) 2013 - Facebook. - * All rights reserved. +* Copyright (c) 2013 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ #include diff --git a/infer/tests/codetoanalyze/c/frontend/arithmetic/compound_assignment.c b/infer/tests/codetoanalyze/c/frontend/arithmetic/compound_assignment.c index f1196fdff..eabfdc5b9 100644 --- a/infer/tests/codetoanalyze/c/frontend/arithmetic/compound_assignment.c +++ b/infer/tests/codetoanalyze/c/frontend/arithmetic/compound_assignment.c @@ -1,6 +1,10 @@ /* - * Copyright (c) 2013 - Facebook. - * All rights reserved. +* Copyright (c) 2013 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ int main() { diff --git a/infer/tests/codetoanalyze/c/frontend/arithmetic/compound_assignment.dot b/infer/tests/codetoanalyze/c/frontend/arithmetic/compound_assignment.dot index 89300bf2c..5be036182 100644 --- a/infer/tests/codetoanalyze/c/frontend/arithmetic/compound_assignment.dot +++ b/infer/tests/codetoanalyze/c/frontend/arithmetic/compound_assignment.dot @@ -1,60 +1,60 @@ digraph iCFG { -15 [label="15: DeclStmt \n *&x:double =1.000000 [line 7]\n " shape="box"] +15 [label="15: DeclStmt \n *&x:double =1.000000 [line 11]\n " shape="box"] 15 -> 14 ; -14 [label="14: ComppoundAssignStmt \n n$9=*&x:double [line 8]\n *&x:double =(n$9 + 1.000000) [line 8]\n REMOVE_TEMPS(n$9); [line 8]\n " shape="box"] +14 [label="14: ComppoundAssignStmt \n n$9=*&x:double [line 12]\n *&x:double =(n$9 + 1.000000) [line 12]\n REMOVE_TEMPS(n$9); [line 12]\n " shape="box"] 14 -> 13 ; -13 [label="13: ComppoundAssignStmt \n n$8=*&x:double [line 9]\n *&x:double =(n$8 - 1.000000) [line 9]\n REMOVE_TEMPS(n$8); [line 9]\n " shape="box"] +13 [label="13: ComppoundAssignStmt \n n$8=*&x:double [line 13]\n *&x:double =(n$8 - 1.000000) [line 13]\n REMOVE_TEMPS(n$8); [line 13]\n " shape="box"] 13 -> 12 ; -12 [label="12: ComppoundAssignStmt \n n$7=*&x:double [line 10]\n *&x:double =(n$7 / 1.000000) [line 10]\n REMOVE_TEMPS(n$7); [line 10]\n " shape="box"] +12 [label="12: ComppoundAssignStmt \n n$7=*&x:double [line 14]\n *&x:double =(n$7 / 1.000000) [line 14]\n REMOVE_TEMPS(n$7); [line 14]\n " shape="box"] 12 -> 11 ; -11 [label="11: ComppoundAssignStmt \n n$6=*&x:double [line 11]\n *&x:double =(n$6 * 1.000000) [line 11]\n REMOVE_TEMPS(n$6); [line 11]\n NULLIFY(&x,false); [line 11]\n " shape="box"] +11 [label="11: ComppoundAssignStmt \n n$6=*&x:double [line 15]\n *&x:double =(n$6 * 1.000000) [line 15]\n REMOVE_TEMPS(n$6); [line 15]\n NULLIFY(&x,false); [line 15]\n " shape="box"] 11 -> 10 ; -10 [label="10: DeclStmt \n *&b:int =1 [line 12]\n " shape="box"] +10 [label="10: DeclStmt \n *&b:int =1 [line 16]\n " shape="box"] 10 -> 9 ; -9 [label="9: ComppoundAssignStmt \n n$5=*&b:int [line 13]\n *&b:int =(n$5 << 1) [line 13]\n REMOVE_TEMPS(n$5); [line 13]\n " shape="box"] +9 [label="9: ComppoundAssignStmt \n n$5=*&b:int [line 17]\n *&b:int =(n$5 << 1) [line 17]\n REMOVE_TEMPS(n$5); [line 17]\n " shape="box"] 9 -> 8 ; -8 [label="8: ComppoundAssignStmt \n n$4=*&b:int [line 14]\n *&b:int =(n$4 >> 1) [line 14]\n REMOVE_TEMPS(n$4); [line 14]\n " shape="box"] +8 [label="8: ComppoundAssignStmt \n n$4=*&b:int [line 18]\n *&b:int =(n$4 >> 1) [line 18]\n REMOVE_TEMPS(n$4); [line 18]\n " shape="box"] 8 -> 7 ; -7 [label="7: ComppoundAssignStmt \n n$3=*&b:int [line 15]\n *&b:int =(n$3 % 1) [line 15]\n REMOVE_TEMPS(n$3); [line 15]\n " shape="box"] +7 [label="7: ComppoundAssignStmt \n n$3=*&b:int [line 19]\n *&b:int =(n$3 % 1) [line 19]\n REMOVE_TEMPS(n$3); [line 19]\n " shape="box"] 7 -> 6 ; -6 [label="6: ComppoundAssignStmt \n n$2=*&b:int [line 16]\n *&b:int =(n$2 & 1) [line 16]\n REMOVE_TEMPS(n$2); [line 16]\n " shape="box"] +6 [label="6: ComppoundAssignStmt \n n$2=*&b:int [line 20]\n *&b:int =(n$2 & 1) [line 20]\n REMOVE_TEMPS(n$2); [line 20]\n " shape="box"] 6 -> 5 ; -5 [label="5: ComppoundAssignStmt \n n$1=*&b:int [line 17]\n *&b:int =(n$1 | 1) [line 17]\n REMOVE_TEMPS(n$1); [line 17]\n " shape="box"] +5 [label="5: ComppoundAssignStmt \n n$1=*&b:int [line 21]\n *&b:int =(n$1 | 1) [line 21]\n REMOVE_TEMPS(n$1); [line 21]\n " shape="box"] 5 -> 4 ; -4 [label="4: ComppoundAssignStmt \n n$0=*&b:int [line 18]\n *&b:int =(n$0 ^ 1) [line 18]\n REMOVE_TEMPS(n$0); [line 18]\n NULLIFY(&b,false); [line 18]\n " shape="box"] +4 [label="4: ComppoundAssignStmt \n n$0=*&b:int [line 22]\n *&b:int =(n$0 ^ 1) [line 22]\n REMOVE_TEMPS(n$0); [line 22]\n NULLIFY(&b,false); [line 22]\n " shape="box"] 4 -> 3 ; -3 [label="3: Return Stmt \n *&return:int =0 [line 19]\n APPLY_ABSTRACTION; [line 19]\n " shape="box"] +3 [label="3: Return Stmt \n *&return:int =0 [line 23]\n APPLY_ABSTRACTION; [line 23]\n " shape="box"] 3 -> 2 ; 2 [label="2: Exit main \n " color=yellow style=filled] -1 [label="1: Start main\nFormals: \nLocals: x:double b:int \n DECLARE_LOCALS(&return,&x,&b); [line 6]\n NULLIFY(&b,false); [line 6]\n NULLIFY(&x,false); [line 6]\n " color=yellow style=filled] +1 [label="1: Start main\nFormals: \nLocals: x:double b:int \n DECLARE_LOCALS(&return,&x,&b); [line 10]\n NULLIFY(&b,false); [line 10]\n NULLIFY(&x,false); [line 10]\n " color=yellow style=filled] 1 -> 15 ; diff --git a/infer/tests/codetoanalyze/c/frontend/arithmetic/int_const.c b/infer/tests/codetoanalyze/c/frontend/arithmetic/int_const.c index 55bcb3779..921075766 100644 --- a/infer/tests/codetoanalyze/c/frontend/arithmetic/int_const.c +++ b/infer/tests/codetoanalyze/c/frontend/arithmetic/int_const.c @@ -1,6 +1,10 @@ /* - * Copyright (c) 2013 - Facebook. - * All rights reserved. +* Copyright (c) 2013 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ int main() { diff --git a/infer/tests/codetoanalyze/c/frontend/arithmetic/int_const.dot b/infer/tests/codetoanalyze/c/frontend/arithmetic/int_const.dot index 5584874d0..4bf01f503 100644 --- a/infer/tests/codetoanalyze/c/frontend/arithmetic/int_const.dot +++ b/infer/tests/codetoanalyze/c/frontend/arithmetic/int_const.dot @@ -1,24 +1,24 @@ digraph iCFG { -6 [label="6: DeclStmt \n *&#GB$main_kDuration:int =3 [line 13]\n " shape="box"] +6 [label="6: DeclStmt \n *&#GB$main_kDuration:int =3 [line 17]\n " shape="box"] 6 -> 5 ; -5 [label="5: DeclStmt \n *&large_int:int =9223372036854775807 [line 15]\n NULLIFY(&large_int,false); [line 15]\n " shape="box"] +5 [label="5: DeclStmt \n *&large_int:int =9223372036854775807 [line 19]\n NULLIFY(&large_int,false); [line 19]\n " shape="box"] 5 -> 4 ; -4 [label="4: DeclStmt \n *&overflow_int:int =n$0 [line 16]\n REMOVE_TEMPS(n$0); [line 16]\n NULLIFY(&overflow_int,false); [line 16]\n " shape="box"] +4 [label="4: DeclStmt \n *&overflow_int:int =n$0 [line 20]\n REMOVE_TEMPS(n$0); [line 20]\n NULLIFY(&overflow_int,false); [line 20]\n " shape="box"] 4 -> 3 ; -3 [label="3: Return Stmt \n *&return:int =0 [line 18]\n APPLY_ABSTRACTION; [line 18]\n " shape="box"] +3 [label="3: Return Stmt \n *&return:int =0 [line 22]\n APPLY_ABSTRACTION; [line 22]\n " shape="box"] 3 -> 2 ; 2 [label="2: Exit main \n " color=yellow style=filled] -1 [label="1: Start main\nFormals: \nLocals: a:int b:int * c:float * d:long double large_int:int overflow_int:int \n DECLARE_LOCALS(&return,&a,&b,&c,&d,&large_int,&overflow_int); [line 6]\n NULLIFY(&a,false); [line 6]\n NULLIFY(&b,false); [line 6]\n NULLIFY(&c,false); [line 6]\n NULLIFY(&d,false); [line 6]\n NULLIFY(&large_int,false); [line 6]\n NULLIFY(&overflow_int,false); [line 6]\n " color=yellow style=filled] +1 [label="1: Start main\nFormals: \nLocals: a:int b:int * c:float * d:long double large_int:int overflow_int:int \n DECLARE_LOCALS(&return,&a,&b,&c,&d,&large_int,&overflow_int); [line 10]\n NULLIFY(&a,false); [line 10]\n NULLIFY(&b,false); [line 10]\n NULLIFY(&c,false); [line 10]\n NULLIFY(&d,false); [line 10]\n NULLIFY(&large_int,false); [line 10]\n NULLIFY(&overflow_int,false); [line 10]\n " color=yellow style=filled] 1 -> 6 ; diff --git a/infer/tests/codetoanalyze/c/frontend/arithmetic/plus_expr.c b/infer/tests/codetoanalyze/c/frontend/arithmetic/plus_expr.c index 7f559df60..5b229d74e 100644 --- a/infer/tests/codetoanalyze/c/frontend/arithmetic/plus_expr.c +++ b/infer/tests/codetoanalyze/c/frontend/arithmetic/plus_expr.c @@ -1,6 +1,10 @@ /* - * Copyright (c) 2013 - Facebook. - * All rights reserved. +* Copyright (c) 2013 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ int main() { diff --git a/infer/tests/codetoanalyze/c/frontend/arithmetic/plus_expr.dot b/infer/tests/codetoanalyze/c/frontend/arithmetic/plus_expr.dot index cfabaf786..b884e44bd 100644 --- a/infer/tests/codetoanalyze/c/frontend/arithmetic/plus_expr.dot +++ b/infer/tests/codetoanalyze/c/frontend/arithmetic/plus_expr.dot @@ -1,20 +1,20 @@ digraph iCFG { -5 [label="5: DeclStmt \n *&x:int =2 [line 7]\n " shape="box"] +5 [label="5: DeclStmt \n *&x:int =2 [line 11]\n " shape="box"] 5 -> 4 ; -4 [label="4: DeclStmt \n *&z:int =3 [line 8]\n " shape="box"] +4 [label="4: DeclStmt \n *&z:int =3 [line 12]\n " shape="box"] 4 -> 3 ; -3 [label="3: Return Stmt \n n$0=*&x:int [line 9]\n n$1=*&z:int [line 9]\n *&return:int =(n$0 + n$1) [line 9]\n REMOVE_TEMPS(n$0,n$1); [line 9]\n NULLIFY(&x,false); [line 9]\n NULLIFY(&z,false); [line 9]\n APPLY_ABSTRACTION; [line 9]\n " shape="box"] +3 [label="3: Return Stmt \n n$0=*&x:int [line 13]\n n$1=*&z:int [line 13]\n *&return:int =(n$0 + n$1) [line 13]\n REMOVE_TEMPS(n$0,n$1); [line 13]\n NULLIFY(&x,false); [line 13]\n NULLIFY(&z,false); [line 13]\n APPLY_ABSTRACTION; [line 13]\n " shape="box"] 3 -> 2 ; 2 [label="2: Exit main \n " color=yellow style=filled] -1 [label="1: Start main\nFormals: \nLocals: x:int z:int \n DECLARE_LOCALS(&return,&x,&z); [line 6]\n NULLIFY(&x,false); [line 6]\n NULLIFY(&z,false); [line 6]\n " color=yellow style=filled] +1 [label="1: Start main\nFormals: \nLocals: x:int z:int \n DECLARE_LOCALS(&return,&x,&z); [line 10]\n NULLIFY(&x,false); [line 10]\n NULLIFY(&z,false); [line 10]\n " color=yellow style=filled] 1 -> 5 ; diff --git a/infer/tests/codetoanalyze/c/frontend/arithmetic/unary.c b/infer/tests/codetoanalyze/c/frontend/arithmetic/unary.c index 4d2dfb257..c69a8bd83 100644 --- a/infer/tests/codetoanalyze/c/frontend/arithmetic/unary.c +++ b/infer/tests/codetoanalyze/c/frontend/arithmetic/unary.c @@ -1,6 +1,10 @@ /* - * Copyright (c) 2013 - Facebook. - * All rights reserved. +* Copyright (c) 2013 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ int main() { diff --git a/infer/tests/codetoanalyze/c/frontend/arithmetic/unary.dot b/infer/tests/codetoanalyze/c/frontend/arithmetic/unary.dot index f777dde79..6ba616ac5 100644 --- a/infer/tests/codetoanalyze/c/frontend/arithmetic/unary.dot +++ b/infer/tests/codetoanalyze/c/frontend/arithmetic/unary.dot @@ -1,60 +1,60 @@ digraph iCFG { -15 [label="15: DeclStmt \n *&x:int =1 [line 7]\n " shape="box"] +15 [label="15: DeclStmt \n *&x:int =1 [line 11]\n " shape="box"] 15 -> 14 ; -14 [label="14: BinaryOperatorStmt: Assign \n n$12=*&x:int [line 10]\n *&y:int =~n$12 [line 10]\n REMOVE_TEMPS(n$12); [line 10]\n NULLIFY(&y,false); [line 10]\n " shape="box"] +14 [label="14: BinaryOperatorStmt: Assign \n n$12=*&x:int [line 14]\n *&y:int =~n$12 [line 14]\n REMOVE_TEMPS(n$12); [line 14]\n NULLIFY(&y,false); [line 14]\n " shape="box"] 14 -> 13 ; -13 [label="13: BinaryOperatorStmt: Assign \n n$11=*&x:int [line 11]\n *&y:int =-n$11 [line 11]\n REMOVE_TEMPS(n$11); [line 11]\n NULLIFY(&y,false); [line 11]\n " shape="box"] +13 [label="13: BinaryOperatorStmt: Assign \n n$11=*&x:int [line 15]\n *&y:int =-n$11 [line 15]\n REMOVE_TEMPS(n$11); [line 15]\n NULLIFY(&y,false); [line 15]\n " shape="box"] 13 -> 12 ; -12 [label="12: BinaryOperatorStmt: Assign \n n$10=*&x:int [line 12]\n *&y:int =n$10 [line 12]\n REMOVE_TEMPS(n$10); [line 12]\n NULLIFY(&y,false); [line 12]\n " shape="box"] +12 [label="12: BinaryOperatorStmt: Assign \n n$10=*&x:int [line 16]\n *&y:int =n$10 [line 16]\n REMOVE_TEMPS(n$10); [line 16]\n NULLIFY(&y,false); [line 16]\n " shape="box"] 12 -> 11 ; -11 [label="11: BinaryOperatorStmt: Assign \n n$9=*&x:int [line 14]\n *&x:int =(n$9 + 1) [line 14]\n *&y:int =n$9 [line 14]\n REMOVE_TEMPS(n$9); [line 14]\n NULLIFY(&y,false); [line 14]\n " shape="box"] +11 [label="11: BinaryOperatorStmt: Assign \n n$9=*&x:int [line 18]\n *&x:int =(n$9 + 1) [line 18]\n *&y:int =n$9 [line 18]\n REMOVE_TEMPS(n$9); [line 18]\n NULLIFY(&y,false); [line 18]\n " shape="box"] 11 -> 10 ; -10 [label="10: BinaryOperatorStmt: Assign \n n$8=*&x:int [line 15]\n *&x:int =(n$8 + 1) [line 15]\n *&y:int =(n$8 + 1) [line 15]\n REMOVE_TEMPS(n$8); [line 15]\n NULLIFY(&y,false); [line 15]\n " shape="box"] +10 [label="10: BinaryOperatorStmt: Assign \n n$8=*&x:int [line 19]\n *&x:int =(n$8 + 1) [line 19]\n *&y:int =(n$8 + 1) [line 19]\n REMOVE_TEMPS(n$8); [line 19]\n NULLIFY(&y,false); [line 19]\n " shape="box"] 10 -> 9 ; -9 [label="9: BinaryOperatorStmt: Assign \n n$7=*&x:int [line 17]\n *&x:int =(n$7 - 1) [line 17]\n *&y:int =(n$7 - 1) [line 17]\n REMOVE_TEMPS(n$7); [line 17]\n NULLIFY(&y,false); [line 17]\n " shape="box"] +9 [label="9: BinaryOperatorStmt: Assign \n n$7=*&x:int [line 21]\n *&x:int =(n$7 - 1) [line 21]\n *&y:int =(n$7 - 1) [line 21]\n REMOVE_TEMPS(n$7); [line 21]\n NULLIFY(&y,false); [line 21]\n " shape="box"] 9 -> 8 ; -8 [label="8: BinaryOperatorStmt: Assign \n n$6=*&x:int [line 18]\n *&x:int =(n$6 - 1) [line 18]\n *&y:int =n$6 [line 18]\n REMOVE_TEMPS(n$6); [line 18]\n NULLIFY(&x,false); [line 18]\n NULLIFY(&y,false); [line 18]\n " shape="box"] +8 [label="8: BinaryOperatorStmt: Assign \n n$6=*&x:int [line 22]\n *&x:int =(n$6 - 1) [line 22]\n *&y:int =n$6 [line 22]\n REMOVE_TEMPS(n$6); [line 22]\n NULLIFY(&x,false); [line 22]\n NULLIFY(&y,false); [line 22]\n " shape="box"] 8 -> 7 ; -7 [label="7: BinaryOperatorStmt: Assign \n *&b:int *=&a [line 23]\n " shape="box"] +7 [label="7: BinaryOperatorStmt: Assign \n *&b:int *=&a [line 27]\n " shape="box"] 7 -> 6 ; -6 [label="6: BinaryOperatorStmt: Assign \n n$4=*&b:int * [line 24]\n n$5=*(n$4 + 1):int [line 24]\n *&a:int =n$5 [line 24]\n REMOVE_TEMPS(n$4,n$5); [line 24]\n " shape="box"] +6 [label="6: BinaryOperatorStmt: Assign \n n$4=*&b:int * [line 28]\n n$5=*(n$4 + 1):int [line 28]\n *&a:int =n$5 [line 28]\n REMOVE_TEMPS(n$4,n$5); [line 28]\n " shape="box"] 6 -> 5 ; -5 [label="5: BinaryOperatorStmt: Assign \n n$1=*&b:int * [line 25]\n n$2=*&b:int * [line 25]\n n$3=*n$2:int [line 25]\n *n$1:int =(n$3 + 1) [line 25]\n REMOVE_TEMPS(n$1,n$2,n$3); [line 25]\n NULLIFY(&b,false); [line 25]\n " shape="box"] +5 [label="5: BinaryOperatorStmt: Assign \n n$1=*&b:int * [line 29]\n n$2=*&b:int * [line 29]\n n$3=*n$2:int [line 29]\n *n$1:int =(n$3 + 1) [line 29]\n REMOVE_TEMPS(n$1,n$2,n$3); [line 29]\n NULLIFY(&b,false); [line 29]\n " shape="box"] 5 -> 4 ; -4 [label="4: BinaryOperatorStmt: Assign \n n$0=*&a:int [line 26]\n *&a:int =n$0 [line 26]\n REMOVE_TEMPS(n$0); [line 26]\n " shape="box"] +4 [label="4: BinaryOperatorStmt: Assign \n n$0=*&a:int [line 30]\n *&a:int =n$0 [line 30]\n REMOVE_TEMPS(n$0); [line 30]\n " shape="box"] 4 -> 3 ; -3 [label="3: Return Stmt \n *&return:int =0 [line 28]\n NULLIFY(&a,false); [line 28]\n APPLY_ABSTRACTION; [line 28]\n " shape="box"] +3 [label="3: Return Stmt \n *&return:int =0 [line 32]\n NULLIFY(&a,false); [line 32]\n APPLY_ABSTRACTION; [line 32]\n " shape="box"] 3 -> 2 ; 2 [label="2: Exit main \n " color=yellow style=filled] -1 [label="1: Start main\nFormals: \nLocals: x:int y:int a:int b:int * \n DECLARE_LOCALS(&return,&x,&y,&a,&b); [line 6]\n NULLIFY(&b,false); [line 6]\n NULLIFY(&x,false); [line 6]\n NULLIFY(&y,false); [line 6]\n " color=yellow style=filled] +1 [label="1: Start main\nFormals: \nLocals: x:int y:int a:int b:int * \n DECLARE_LOCALS(&return,&x,&y,&a,&b); [line 10]\n NULLIFY(&b,false); [line 10]\n NULLIFY(&x,false); [line 10]\n NULLIFY(&y,false); [line 10]\n " color=yellow style=filled] 1 -> 15 ; diff --git a/infer/tests/codetoanalyze/c/frontend/booleans/bool_example.c b/infer/tests/codetoanalyze/c/frontend/booleans/bool_example.c index 6957708d9..c8ed31ada 100644 --- a/infer/tests/codetoanalyze/c/frontend/booleans/bool_example.c +++ b/infer/tests/codetoanalyze/c/frontend/booleans/bool_example.c @@ -1,6 +1,10 @@ /* - * Copyright (c) 2013 - Facebook. - * All rights reserved. +* Copyright (c) 2013 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ #include diff --git a/infer/tests/codetoanalyze/c/frontend/booleans/bool_example.dot b/infer/tests/codetoanalyze/c/frontend/booleans/bool_example.dot index a050ed020..00d131896 100644 --- a/infer/tests/codetoanalyze/c/frontend/booleans/bool_example.dot +++ b/infer/tests/codetoanalyze/c/frontend/booleans/bool_example.dot @@ -1,5 +1,5 @@ digraph iCFG { -3 [label="3: Return Stmt \n n$0=*&e:_Bool [line 9]\n *&return:_Bool =n$0 [line 9]\n REMOVE_TEMPS(n$0); [line 9]\n NULLIFY(&e,false); [line 9]\n APPLY_ABSTRACTION; [line 9]\n " shape="box"] +3 [label="3: Return Stmt \n n$0=*&e:_Bool [line 13]\n *&return:_Bool =n$0 [line 13]\n REMOVE_TEMPS(n$0); [line 13]\n NULLIFY(&e,false); [line 13]\n APPLY_ABSTRACTION; [line 13]\n " shape="box"] 3 -> 2 ; diff --git a/infer/tests/codetoanalyze/c/frontend/booleans/condition_as_param.c b/infer/tests/codetoanalyze/c/frontend/booleans/condition_as_param.c index b47765c3c..78b096e93 100644 --- a/infer/tests/codetoanalyze/c/frontend/booleans/condition_as_param.c +++ b/infer/tests/codetoanalyze/c/frontend/booleans/condition_as_param.c @@ -1,6 +1,10 @@ /* - * Copyright (c) 2013 - Facebook. - * All rights reserved. +* Copyright (c) 2013 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ void check(int x) { diff --git a/infer/tests/codetoanalyze/c/frontend/booleans/condition_as_param.dot b/infer/tests/codetoanalyze/c/frontend/booleans/condition_as_param.dot index ac630c0d4..841d8cbe1 100644 --- a/infer/tests/codetoanalyze/c/frontend/booleans/condition_as_param.dot +++ b/infer/tests/codetoanalyze/c/frontend/booleans/condition_as_param.dot @@ -1,23 +1,23 @@ digraph iCFG { -6 [label="6: DeclStmt \n *&x:int =3 [line 10]\n " shape="box"] +6 [label="6: DeclStmt \n *&x:int =3 [line 14]\n " shape="box"] 6 -> 5 ; -5 [label="5: Call _fun_check \n n$0=*&x:int [line 11]\n _fun_check((n$0 < 2):int ) [line 11]\n REMOVE_TEMPS(n$0); [line 11]\n NULLIFY(&x,false); [line 11]\n APPLY_ABSTRACTION; [line 11]\n " shape="box"] +5 [label="5: Call _fun_check \n n$0=*&x:int [line 15]\n _fun_check((n$0 < 2):int ) [line 15]\n REMOVE_TEMPS(n$0); [line 15]\n NULLIFY(&x,false); [line 15]\n APPLY_ABSTRACTION; [line 15]\n " shape="box"] 5 -> 4 ; 4 [label="4: Exit main \n " color=yellow style=filled] -3 [label="3: Start main\nFormals: \nLocals: x:int \n DECLARE_LOCALS(&return,&x); [line 9]\n NULLIFY(&x,false); [line 9]\n " color=yellow style=filled] +3 [label="3: Start main\nFormals: \nLocals: x:int \n DECLARE_LOCALS(&return,&x); [line 13]\n NULLIFY(&x,false); [line 13]\n " color=yellow style=filled] 3 -> 6 ; 2 [label="2: Exit check \n " color=yellow style=filled] -1 [label="1: Start check\nFormals: x:int \nLocals: \n DECLARE_LOCALS(&return); [line 6]\n NULLIFY(&x,false); [line 6]\n " color=yellow style=filled] +1 [label="1: Start check\nFormals: x:int \nLocals: \n DECLARE_LOCALS(&return); [line 10]\n NULLIFY(&x,false); [line 10]\n " color=yellow style=filled] 1 -> 2 ; diff --git a/infer/tests/codetoanalyze/c/frontend/c_prototype/prototype.c b/infer/tests/codetoanalyze/c/frontend/c_prototype/prototype.c index 1128aca7a..916c3366d 100644 --- a/infer/tests/codetoanalyze/c/frontend/c_prototype/prototype.c +++ b/infer/tests/codetoanalyze/c/frontend/c_prototype/prototype.c @@ -1,6 +1,10 @@ /* - * Copyright (c) 2013 - Facebook. - * All rights reserved. +* Copyright (c) 2013 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ /* diff --git a/infer/tests/codetoanalyze/c/frontend/c_prototype/prototype.dot b/infer/tests/codetoanalyze/c/frontend/c_prototype/prototype.dot index cfa23ddac..555b3a335 100644 --- a/infer/tests/codetoanalyze/c/frontend/c_prototype/prototype.dot +++ b/infer/tests/codetoanalyze/c/frontend/c_prototype/prototype.dot @@ -1,27 +1,27 @@ digraph iCFG { -7 [label="7: Return Stmt \n n$1=*&a:int [line 22]\n n$2=*&b:int [line 22]\n *&return:int =(n$1 + n$2) [line 22]\n REMOVE_TEMPS(n$1,n$2); [line 22]\n NULLIFY(&a,false); [line 22]\n NULLIFY(&b,false); [line 22]\n APPLY_ABSTRACTION; [line 22]\n " shape="box"] +7 [label="7: Return Stmt \n n$1=*&a:int [line 26]\n n$2=*&b:int [line 26]\n *&return:int =(n$1 + n$2) [line 26]\n REMOVE_TEMPS(n$1,n$2); [line 26]\n NULLIFY(&a,false); [line 26]\n NULLIFY(&b,false); [line 26]\n APPLY_ABSTRACTION; [line 26]\n " shape="box"] 7 -> 6 ; 6 [label="6: Exit sum \n " color=yellow style=filled] -5 [label="5: Start sum\nFormals: a:int b:int \nLocals: \n DECLARE_LOCALS(&return); [line 21]\n " color=yellow style=filled] +5 [label="5: Start sum\nFormals: a:int b:int \nLocals: \n DECLARE_LOCALS(&return); [line 25]\n " color=yellow style=filled] 5 -> 7 ; -4 [label="4: BinaryOperatorStmt: Assign \n n$0=_fun_sum(2:int ,3:int ) [line 16]\n *&total:int =n$0 [line 16]\n REMOVE_TEMPS(n$0); [line 16]\n NULLIFY(&total,false); [line 16]\n " shape="box"] +4 [label="4: BinaryOperatorStmt: Assign \n n$0=_fun_sum(2:int ,3:int ) [line 20]\n *&total:int =n$0 [line 20]\n REMOVE_TEMPS(n$0); [line 20]\n NULLIFY(&total,false); [line 20]\n " shape="box"] 4 -> 3 ; -3 [label="3: Return Stmt \n *&return:int =0 [line 18]\n APPLY_ABSTRACTION; [line 18]\n " shape="box"] +3 [label="3: Return Stmt \n *&return:int =0 [line 22]\n APPLY_ABSTRACTION; [line 22]\n " shape="box"] 3 -> 2 ; 2 [label="2: Exit main \n " color=yellow style=filled] -1 [label="1: Start main\nFormals: \nLocals: total:int \n DECLARE_LOCALS(&return,&total); [line 13]\n NULLIFY(&total,false); [line 13]\n " color=yellow style=filled] +1 [label="1: Start main\nFormals: \nLocals: total:int \n DECLARE_LOCALS(&return,&total); [line 17]\n NULLIFY(&total,false); [line 17]\n " color=yellow style=filled] 1 -> 4 ; diff --git a/infer/tests/codetoanalyze/c/frontend/comma/comma.c b/infer/tests/codetoanalyze/c/frontend/comma/comma.c index 640268799..87b4bde98 100644 --- a/infer/tests/codetoanalyze/c/frontend/comma/comma.c +++ b/infer/tests/codetoanalyze/c/frontend/comma/comma.c @@ -1,6 +1,10 @@ /* - * Copyright (c) 2013 - Facebook. - * All rights reserved. +* Copyright (c) 2013 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ int comma_1() { diff --git a/infer/tests/codetoanalyze/c/frontend/comma/comma.dot b/infer/tests/codetoanalyze/c/frontend/comma/comma.dot index 09ed570ae..df7bb4736 100644 --- a/infer/tests/codetoanalyze/c/frontend/comma/comma.dot +++ b/infer/tests/codetoanalyze/c/frontend/comma/comma.dot @@ -1,74 +1,74 @@ digraph iCFG { -19 [label="19: DeclStmt \n *&a:int =9 [line 19]\n " shape="box"] +19 [label="19: DeclStmt \n *&a:int =9 [line 23]\n " shape="box"] 19 -> 18 ; -18 [label="18: DeclStmt \n *&b:int =7 [line 19]\n NULLIFY(&b,false); [line 19]\n " shape="box"] +18 [label="18: DeclStmt \n *&b:int =7 [line 23]\n NULLIFY(&b,false); [line 23]\n " shape="box"] 18 -> 17 ; -17 [label="17: DeclStmt \n *&c:int =3 [line 19]\n NULLIFY(&c,false); [line 19]\n " shape="box"] +17 [label="17: DeclStmt \n *&c:int =3 [line 23]\n NULLIFY(&c,false); [line 23]\n " shape="box"] 17 -> 16 ; -16 [label="16: DeclStmt \n n$13=*&a:int [line 20]\n *&a:int =(n$13 * 2) [line 20]\n n$14=*&a:int [line 20]\n n$15=*&a:int [line 20]\n *&a:int =(n$15 + 1) [line 20]\n *&b:int =(7 * n$15) [line 20]\n n$16=*&b:int [line 20]\n n$17=*&a:int [line 20]\n n$18=*&b:int [line 20]\n *&c:int =((n$17 + n$18) + 9) [line 20]\n n$19=*&c:int [line 20]\n n$20=*&c:int [line 20]\n *&d:int =n$20 [line 20]\n REMOVE_TEMPS(n$13,n$14,n$15,n$16,n$17,n$18,n$19,n$20); [line 20]\n NULLIFY(&a,false); [line 20]\n NULLIFY(&b,false); [line 20]\n NULLIFY(&c,false); [line 20]\n " shape="box"] +16 [label="16: DeclStmt \n n$13=*&a:int [line 24]\n *&a:int =(n$13 * 2) [line 24]\n n$14=*&a:int [line 24]\n n$15=*&a:int [line 24]\n *&a:int =(n$15 + 1) [line 24]\n *&b:int =(7 * n$15) [line 24]\n n$16=*&b:int [line 24]\n n$17=*&a:int [line 24]\n n$18=*&b:int [line 24]\n *&c:int =((n$17 + n$18) + 9) [line 24]\n n$19=*&c:int [line 24]\n n$20=*&c:int [line 24]\n *&d:int =n$20 [line 24]\n REMOVE_TEMPS(n$13,n$14,n$15,n$16,n$17,n$18,n$19,n$20); [line 24]\n NULLIFY(&a,false); [line 24]\n NULLIFY(&b,false); [line 24]\n NULLIFY(&c,false); [line 24]\n " shape="box"] 16 -> 15 ; -15 [label="15: Return Stmt \n n$12=*&d:int [line 21]\n *&return:int =n$12 [line 21]\n REMOVE_TEMPS(n$12); [line 21]\n NULLIFY(&d,false); [line 21]\n APPLY_ABSTRACTION; [line 21]\n " shape="box"] +15 [label="15: Return Stmt \n n$12=*&d:int [line 25]\n *&return:int =n$12 [line 25]\n REMOVE_TEMPS(n$12); [line 25]\n NULLIFY(&d,false); [line 25]\n APPLY_ABSTRACTION; [line 25]\n " shape="box"] 15 -> 14 ; 14 [label="14: Exit comma_3 \n " color=yellow style=filled] -13 [label="13: Start comma_3\nFormals: \nLocals: a:int b:int c:int d:int \n DECLARE_LOCALS(&return,&a,&b,&c,&d); [line 18]\n NULLIFY(&a,false); [line 18]\n NULLIFY(&b,false); [line 18]\n NULLIFY(&c,false); [line 18]\n NULLIFY(&d,false); [line 18]\n " color=yellow style=filled] +13 [label="13: Start comma_3\nFormals: \nLocals: a:int b:int c:int d:int \n DECLARE_LOCALS(&return,&a,&b,&c,&d); [line 22]\n NULLIFY(&a,false); [line 22]\n NULLIFY(&b,false); [line 22]\n NULLIFY(&c,false); [line 22]\n NULLIFY(&d,false); [line 22]\n " color=yellow style=filled] 13 -> 19 ; -12 [label="12: DeclStmt \n *&a:int =9 [line 13]\n " shape="box"] +12 [label="12: DeclStmt \n *&a:int =9 [line 17]\n " shape="box"] 12 -> 11 ; -11 [label="11: DeclStmt \n *&b:int =7 [line 13]\n NULLIFY(&b,false); [line 13]\n " shape="box"] +11 [label="11: DeclStmt \n *&b:int =7 [line 17]\n NULLIFY(&b,false); [line 17]\n " shape="box"] 11 -> 10 ; -10 [label="10: DeclStmt \n n$6=*&a:int [line 14]\n *&a:int =(n$6 * 2) [line 14]\n n$7=*&a:int [line 14]\n n$8=*&a:int [line 14]\n *&a:int =(n$8 + 1) [line 14]\n *&b:int =(7 * n$8) [line 14]\n n$9=*&b:int [line 14]\n n$10=*&a:int [line 14]\n n$11=*&b:int [line 14]\n *&d:int =((n$10 + n$11) + 9) [line 14]\n REMOVE_TEMPS(n$6,n$7,n$8,n$9,n$10,n$11); [line 14]\n NULLIFY(&a,false); [line 14]\n NULLIFY(&b,false); [line 14]\n " shape="box"] +10 [label="10: DeclStmt \n n$6=*&a:int [line 18]\n *&a:int =(n$6 * 2) [line 18]\n n$7=*&a:int [line 18]\n n$8=*&a:int [line 18]\n *&a:int =(n$8 + 1) [line 18]\n *&b:int =(7 * n$8) [line 18]\n n$9=*&b:int [line 18]\n n$10=*&a:int [line 18]\n n$11=*&b:int [line 18]\n *&d:int =((n$10 + n$11) + 9) [line 18]\n REMOVE_TEMPS(n$6,n$7,n$8,n$9,n$10,n$11); [line 18]\n NULLIFY(&a,false); [line 18]\n NULLIFY(&b,false); [line 18]\n " shape="box"] 10 -> 9 ; -9 [label="9: Return Stmt \n n$5=*&d:int [line 15]\n *&return:int =n$5 [line 15]\n REMOVE_TEMPS(n$5); [line 15]\n NULLIFY(&d,false); [line 15]\n APPLY_ABSTRACTION; [line 15]\n " shape="box"] +9 [label="9: Return Stmt \n n$5=*&d:int [line 19]\n *&return:int =n$5 [line 19]\n REMOVE_TEMPS(n$5); [line 19]\n NULLIFY(&d,false); [line 19]\n APPLY_ABSTRACTION; [line 19]\n " shape="box"] 9 -> 8 ; 8 [label="8: Exit comma_2 \n " color=yellow style=filled] -7 [label="7: Start comma_2\nFormals: \nLocals: a:int b:int d:int \n DECLARE_LOCALS(&return,&a,&b,&d); [line 12]\n NULLIFY(&a,false); [line 12]\n NULLIFY(&b,false); [line 12]\n NULLIFY(&d,false); [line 12]\n " color=yellow style=filled] +7 [label="7: Start comma_2\nFormals: \nLocals: a:int b:int d:int \n DECLARE_LOCALS(&return,&a,&b,&d); [line 16]\n NULLIFY(&a,false); [line 16]\n NULLIFY(&b,false); [line 16]\n NULLIFY(&d,false); [line 16]\n " color=yellow style=filled] 7 -> 12 ; -6 [label="6: DeclStmt \n *&a:int =9 [line 7]\n " shape="box"] +6 [label="6: DeclStmt \n *&a:int =9 [line 11]\n " shape="box"] 6 -> 5 ; -5 [label="5: DeclStmt \n *&b:int =7 [line 7]\n NULLIFY(&b,false); [line 7]\n " shape="box"] +5 [label="5: DeclStmt \n *&b:int =7 [line 11]\n NULLIFY(&b,false); [line 11]\n " shape="box"] 5 -> 4 ; -4 [label="4: DeclStmt \n n$1=*&a:int [line 8]\n *&a:int =(n$1 * 2) [line 8]\n n$2=*&a:int [line 8]\n n$3=*&a:int [line 8]\n *&a:int =(n$3 + 1) [line 8]\n *&b:int =(7 * n$3) [line 8]\n n$4=*&b:int [line 8]\n *&d:int =n$4 [line 8]\n REMOVE_TEMPS(n$1,n$2,n$3,n$4); [line 8]\n NULLIFY(&a,false); [line 8]\n NULLIFY(&b,false); [line 8]\n " shape="box"] +4 [label="4: DeclStmt \n n$1=*&a:int [line 12]\n *&a:int =(n$1 * 2) [line 12]\n n$2=*&a:int [line 12]\n n$3=*&a:int [line 12]\n *&a:int =(n$3 + 1) [line 12]\n *&b:int =(7 * n$3) [line 12]\n n$4=*&b:int [line 12]\n *&d:int =n$4 [line 12]\n REMOVE_TEMPS(n$1,n$2,n$3,n$4); [line 12]\n NULLIFY(&a,false); [line 12]\n NULLIFY(&b,false); [line 12]\n " shape="box"] 4 -> 3 ; -3 [label="3: Return Stmt \n n$0=*&d:int [line 9]\n *&return:int =n$0 [line 9]\n REMOVE_TEMPS(n$0); [line 9]\n NULLIFY(&d,false); [line 9]\n APPLY_ABSTRACTION; [line 9]\n " shape="box"] +3 [label="3: Return Stmt \n n$0=*&d:int [line 13]\n *&return:int =n$0 [line 13]\n REMOVE_TEMPS(n$0); [line 13]\n NULLIFY(&d,false); [line 13]\n APPLY_ABSTRACTION; [line 13]\n " shape="box"] 3 -> 2 ; 2 [label="2: Exit comma_1 \n " color=yellow style=filled] -1 [label="1: Start comma_1\nFormals: \nLocals: a:int b:int d:int \n DECLARE_LOCALS(&return,&a,&b,&d); [line 6]\n NULLIFY(&a,false); [line 6]\n NULLIFY(&b,false); [line 6]\n NULLIFY(&d,false); [line 6]\n " color=yellow style=filled] +1 [label="1: Start comma_1\nFormals: \nLocals: a:int b:int d:int \n DECLARE_LOCALS(&return,&a,&b,&d); [line 10]\n NULLIFY(&a,false); [line 10]\n NULLIFY(&b,false); [line 10]\n NULLIFY(&d,false); [line 10]\n " color=yellow style=filled] 1 -> 6 ; diff --git a/infer/tests/codetoanalyze/c/frontend/conditional_operator/array_access.c b/infer/tests/codetoanalyze/c/frontend/conditional_operator/array_access.c index b690c893f..2eca2a5e9 100644 --- a/infer/tests/codetoanalyze/c/frontend/conditional_operator/array_access.c +++ b/infer/tests/codetoanalyze/c/frontend/conditional_operator/array_access.c @@ -1,6 +1,10 @@ /* - * Copyright (c) 2013 - Facebook. - * All rights reserved. +* Copyright (c) 2013 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ void dereference_in_array_access(int **p) { diff --git a/infer/tests/codetoanalyze/c/frontend/conditional_operator/array_access.dot b/infer/tests/codetoanalyze/c/frontend/conditional_operator/array_access.dot index 2f967a9d5..b3d100ff4 100644 --- a/infer/tests/codetoanalyze/c/frontend/conditional_operator/array_access.dot +++ b/infer/tests/codetoanalyze/c/frontend/conditional_operator/array_access.dot @@ -1,9 +1,9 @@ digraph iCFG { -18 [label="18: Prune (false branch) \n n$14=*&p:int ** [line 7]\n n$15=*n$14[0]:int * [line 7]\n PRUNE((n$15 == 0), false); [line 7]\n REMOVE_TEMPS(n$14,n$15); [line 7]\n APPLY_ABSTRACTION; [line 7]\n " shape="invhouse"] +18 [label="18: Prune (false branch) \n n$14=*&p:int ** [line 11]\n n$15=*n$14[0]:int * [line 11]\n PRUNE((n$15 == 0), false); [line 11]\n REMOVE_TEMPS(n$14,n$15); [line 11]\n APPLY_ABSTRACTION; [line 11]\n " shape="invhouse"] 18 -> 16 ; -17 [label="17: Prune (true branch) \n n$14=*&p:int ** [line 7]\n n$15=*n$14[0]:int * [line 7]\n PRUNE((n$15 != 0), true); [line 7]\n REMOVE_TEMPS(n$14,n$15); [line 7]\n APPLY_ABSTRACTION; [line 7]\n " shape="invhouse"] +17 [label="17: Prune (true branch) \n n$14=*&p:int ** [line 11]\n n$15=*n$14[0]:int * [line 11]\n PRUNE((n$15 != 0), true); [line 11]\n REMOVE_TEMPS(n$14,n$15); [line 11]\n APPLY_ABSTRACTION; [line 11]\n " shape="invhouse"] 17 -> 16 ; @@ -11,15 +11,15 @@ digraph iCFG { 16 -> 13 ; -15 [label="15: Prune (false branch) \n n$12=*n$11:int * [line 8]\n n$13=*n$12[1]:int [line 8]\n PRUNE((n$13 == 0), false); [line 8]\n REMOVE_TEMPS(n$11,n$12,n$13); [line 8]\n APPLY_ABSTRACTION; [line 8]\n " shape="invhouse"] +15 [label="15: Prune (false branch) \n n$12=*n$11:int * [line 12]\n n$13=*n$12[1]:int [line 12]\n PRUNE((n$13 == 0), false); [line 12]\n REMOVE_TEMPS(n$11,n$12,n$13); [line 12]\n APPLY_ABSTRACTION; [line 12]\n " shape="invhouse"] 15 -> 12 ; -14 [label="14: Prune (true branch) \n n$12=*n$11:int * [line 8]\n n$13=*n$12[1]:int [line 8]\n PRUNE((n$13 != 0), true); [line 8]\n REMOVE_TEMPS(n$11,n$12,n$13); [line 8]\n APPLY_ABSTRACTION; [line 8]\n " shape="invhouse"] +14 [label="14: Prune (true branch) \n n$12=*n$11:int * [line 12]\n n$13=*n$12[1]:int [line 12]\n PRUNE((n$13 != 0), true); [line 12]\n REMOVE_TEMPS(n$11,n$12,n$13); [line 12]\n APPLY_ABSTRACTION; [line 12]\n " shape="invhouse"] 14 -> 12 ; -13 [label="13: UnaryOperator \n n$11=*&p:int ** [line 8]\n " shape="box"] +13 [label="13: UnaryOperator \n n$11=*&p:int ** [line 12]\n " shape="box"] 13 -> 14 ; @@ -28,15 +28,15 @@ digraph iCFG { 12 -> 9 ; -11 [label="11: Prune (false branch) \n n$6=*&p:int ** [line 9]\n n$9=*n$8:int [line 9]\n n$10=*n$6[n$9]:int * [line 9]\n PRUNE((n$10 == 0), false); [line 9]\n REMOVE_TEMPS(n$7,n$8,n$9,n$6,n$10); [line 9]\n APPLY_ABSTRACTION; [line 9]\n " shape="invhouse"] +11 [label="11: Prune (false branch) \n n$6=*&p:int ** [line 13]\n n$9=*n$8:int [line 13]\n n$10=*n$6[n$9]:int * [line 13]\n PRUNE((n$10 == 0), false); [line 13]\n REMOVE_TEMPS(n$7,n$8,n$9,n$6,n$10); [line 13]\n APPLY_ABSTRACTION; [line 13]\n " shape="invhouse"] 11 -> 8 ; -10 [label="10: Prune (true branch) \n n$6=*&p:int ** [line 9]\n n$9=*n$8:int [line 9]\n n$10=*n$6[n$9]:int * [line 9]\n PRUNE((n$10 != 0), true); [line 9]\n REMOVE_TEMPS(n$7,n$8,n$9,n$6,n$10); [line 9]\n APPLY_ABSTRACTION; [line 9]\n " shape="invhouse"] +10 [label="10: Prune (true branch) \n n$6=*&p:int ** [line 13]\n n$9=*n$8:int [line 13]\n n$10=*n$6[n$9]:int * [line 13]\n PRUNE((n$10 != 0), true); [line 13]\n REMOVE_TEMPS(n$7,n$8,n$9,n$6,n$10); [line 13]\n APPLY_ABSTRACTION; [line 13]\n " shape="invhouse"] 10 -> 8 ; -9 [label="9: UnaryOperator \n n$7=*&p:int ** [line 9]\n n$8=*n$7:int * [line 9]\n " shape="box"] +9 [label="9: UnaryOperator \n n$7=*&p:int ** [line 13]\n n$8=*n$7:int * [line 13]\n " shape="box"] 9 -> 10 ; @@ -45,20 +45,20 @@ digraph iCFG { 8 -> 4 ; -7 [label="7: Prune (false branch) \n n$1=*n$0:int * [line 10]\n n$4=*n$3:int [line 10]\n n$5=*n$1[n$4]:int [line 10]\n PRUNE((n$5 == 0), false); [line 10]\n REMOVE_TEMPS(n$2,n$3,n$4,n$0,n$1,n$5); [line 10]\n APPLY_ABSTRACTION; [line 10]\n " shape="invhouse"] +7 [label="7: Prune (false branch) \n n$1=*n$0:int * [line 14]\n n$4=*n$3:int [line 14]\n n$5=*n$1[n$4]:int [line 14]\n PRUNE((n$5 == 0), false); [line 14]\n REMOVE_TEMPS(n$2,n$3,n$4,n$0,n$1,n$5); [line 14]\n APPLY_ABSTRACTION; [line 14]\n " shape="invhouse"] 7 -> 3 ; -6 [label="6: Prune (true branch) \n n$1=*n$0:int * [line 10]\n n$4=*n$3:int [line 10]\n n$5=*n$1[n$4]:int [line 10]\n PRUNE((n$5 != 0), true); [line 10]\n REMOVE_TEMPS(n$2,n$3,n$4,n$0,n$1,n$5); [line 10]\n APPLY_ABSTRACTION; [line 10]\n " shape="invhouse"] +6 [label="6: Prune (true branch) \n n$1=*n$0:int * [line 14]\n n$4=*n$3:int [line 14]\n n$5=*n$1[n$4]:int [line 14]\n PRUNE((n$5 != 0), true); [line 14]\n REMOVE_TEMPS(n$2,n$3,n$4,n$0,n$1,n$5); [line 14]\n APPLY_ABSTRACTION; [line 14]\n " shape="invhouse"] 6 -> 3 ; -5 [label="5: UnaryOperator \n n$2=*&p:int ** [line 10]\n n$3=*n$2:int * [line 10]\n NULLIFY(&p,false); [line 10]\n " shape="box"] +5 [label="5: UnaryOperator \n n$2=*&p:int ** [line 14]\n n$3=*n$2:int * [line 14]\n NULLIFY(&p,false); [line 14]\n " shape="box"] 5 -> 6 ; 5 -> 7 ; -4 [label="4: UnaryOperator \n n$0=*&p:int ** [line 10]\n " shape="box"] +4 [label="4: UnaryOperator \n n$0=*&p:int ** [line 14]\n " shape="box"] 4 -> 5 ; @@ -69,7 +69,7 @@ digraph iCFG { 2 [label="2: Exit dereference_in_array_access \n " color=yellow style=filled] -1 [label="1: Start dereference_in_array_access\nFormals: p:int **\nLocals: \n DECLARE_LOCALS(&return); [line 6]\n " color=yellow style=filled] +1 [label="1: Start dereference_in_array_access\nFormals: p:int **\nLocals: \n DECLARE_LOCALS(&return); [line 10]\n " color=yellow style=filled] 1 -> 17 ; diff --git a/infer/tests/codetoanalyze/c/frontend/conditional_operator/assert_example.c b/infer/tests/codetoanalyze/c/frontend/conditional_operator/assert_example.c index 39e05afad..e652d1600 100644 --- a/infer/tests/codetoanalyze/c/frontend/conditional_operator/assert_example.c +++ b/infer/tests/codetoanalyze/c/frontend/conditional_operator/assert_example.c @@ -1,6 +1,10 @@ /* - * Copyright (c) 2013 - Facebook. - * All rights reserved. +* Copyright (c) 2013 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ #include diff --git a/infer/tests/codetoanalyze/c/frontend/conditional_operator/binary_operator.c b/infer/tests/codetoanalyze/c/frontend/conditional_operator/binary_operator.c index 228341db3..84e5e9610 100644 --- a/infer/tests/codetoanalyze/c/frontend/conditional_operator/binary_operator.c +++ b/infer/tests/codetoanalyze/c/frontend/conditional_operator/binary_operator.c @@ -1,6 +1,10 @@ /* - * Copyright (c) 2013 - Facebook. - * All rights reserved. +* Copyright (c) 2013 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ void binop_with_side_effects(int z) { diff --git a/infer/tests/codetoanalyze/c/frontend/conditional_operator/binary_operator.dot b/infer/tests/codetoanalyze/c/frontend/conditional_operator/binary_operator.dot index c5c90d91f..3b2f9609f 100644 --- a/infer/tests/codetoanalyze/c/frontend/conditional_operator/binary_operator.dot +++ b/infer/tests/codetoanalyze/c/frontend/conditional_operator/binary_operator.dot @@ -1,22 +1,22 @@ digraph iCFG { -48 [label="48: BinaryOperatorStmt: Assign \n n$23=*&SIL_temp_conditional___43:int [line 9]\n NULLIFY(&SIL_temp_conditional___43,true); [line 9]\n *&x1:int =(n$23 + 77) [line 9]\n REMOVE_TEMPS(n$23); [line 9]\n NULLIFY(&x1,false); [line 9]\n " shape="box"] +48 [label="48: BinaryOperatorStmt: Assign \n n$23=*&SIL_temp_conditional___43:int [line 13]\n NULLIFY(&SIL_temp_conditional___43,true); [line 13]\n *&x1:int =(n$23 + 77) [line 13]\n REMOVE_TEMPS(n$23); [line 13]\n NULLIFY(&x1,false); [line 13]\n " shape="box"] 48 -> 38 ; 48 -> 39 ; -47 [label="47: ConditinalStmt Branch \n n$22=*&z:int [line 9]\n DECLARE_LOCALS(&SIL_temp_conditional___43); [line 9]\n *&SIL_temp_conditional___43:int =n$22 [line 9]\n REMOVE_TEMPS(n$22); [line 9]\n APPLY_ABSTRACTION; [line 9]\n " shape="box"] +47 [label="47: ConditinalStmt Branch \n n$22=*&z:int [line 13]\n DECLARE_LOCALS(&SIL_temp_conditional___43); [line 13]\n *&SIL_temp_conditional___43:int =n$22 [line 13]\n REMOVE_TEMPS(n$22); [line 13]\n APPLY_ABSTRACTION; [line 13]\n " shape="box"] 47 -> 43 ; -46 [label="46: ConditinalStmt Branch \n n$21=*&z:int [line 9]\n DECLARE_LOCALS(&SIL_temp_conditional___43); [line 9]\n *&SIL_temp_conditional___43:int =n$21 [line 9]\n REMOVE_TEMPS(n$21); [line 9]\n APPLY_ABSTRACTION; [line 9]\n " shape="box"] +46 [label="46: ConditinalStmt Branch \n n$21=*&z:int [line 13]\n DECLARE_LOCALS(&SIL_temp_conditional___43); [line 13]\n *&SIL_temp_conditional___43:int =n$21 [line 13]\n REMOVE_TEMPS(n$21); [line 13]\n APPLY_ABSTRACTION; [line 13]\n " shape="box"] 46 -> 43 ; -45 [label="45: Prune (false branch) \n PRUNE((1 == 0), false); [line 9]\n " shape="invhouse"] +45 [label="45: Prune (false branch) \n PRUNE((1 == 0), false); [line 13]\n " shape="invhouse"] 45 -> 47 ; -44 [label="44: Prune (true branch) \n PRUNE((1 != 0), true); [line 9]\n " shape="invhouse"] +44 [label="44: Prune (true branch) \n PRUNE((1 != 0), true); [line 13]\n " shape="invhouse"] 44 -> 46 ; @@ -24,24 +24,24 @@ digraph iCFG { 43 -> 48 ; -42 [label="42: BinaryOperatorStmt: Assign \n n$20=*&SIL_temp_conditional___37:int [line 12]\n NULLIFY(&SIL_temp_conditional___37,true); [line 12]\n *&x2:int =(77 + n$20) [line 12]\n REMOVE_TEMPS(n$20); [line 12]\n NULLIFY(&x2,false); [line 12]\n " shape="box"] +42 [label="42: BinaryOperatorStmt: Assign \n n$20=*&SIL_temp_conditional___37:int [line 16]\n NULLIFY(&SIL_temp_conditional___37,true); [line 16]\n *&x2:int =(77 + n$20) [line 16]\n REMOVE_TEMPS(n$20); [line 16]\n NULLIFY(&x2,false); [line 16]\n " shape="box"] 42 -> 27 ; 42 -> 28 ; -41 [label="41: ConditinalStmt Branch \n n$19=*&z:int [line 12]\n DECLARE_LOCALS(&SIL_temp_conditional___37); [line 12]\n *&SIL_temp_conditional___37:int =n$19 [line 12]\n REMOVE_TEMPS(n$19); [line 12]\n APPLY_ABSTRACTION; [line 12]\n " shape="box"] +41 [label="41: ConditinalStmt Branch \n n$19=*&z:int [line 16]\n DECLARE_LOCALS(&SIL_temp_conditional___37); [line 16]\n *&SIL_temp_conditional___37:int =n$19 [line 16]\n REMOVE_TEMPS(n$19); [line 16]\n APPLY_ABSTRACTION; [line 16]\n " shape="box"] 41 -> 37 ; -40 [label="40: ConditinalStmt Branch \n n$18=*&z:int [line 12]\n DECLARE_LOCALS(&SIL_temp_conditional___37); [line 12]\n *&SIL_temp_conditional___37:int =n$18 [line 12]\n REMOVE_TEMPS(n$18); [line 12]\n APPLY_ABSTRACTION; [line 12]\n " shape="box"] +40 [label="40: ConditinalStmt Branch \n n$18=*&z:int [line 16]\n DECLARE_LOCALS(&SIL_temp_conditional___37); [line 16]\n *&SIL_temp_conditional___37:int =n$18 [line 16]\n REMOVE_TEMPS(n$18); [line 16]\n APPLY_ABSTRACTION; [line 16]\n " shape="box"] 40 -> 37 ; -39 [label="39: Prune (false branch) \n PRUNE((1 == 0), false); [line 12]\n " shape="invhouse"] +39 [label="39: Prune (false branch) \n PRUNE((1 == 0), false); [line 16]\n " shape="invhouse"] 39 -> 41 ; -38 [label="38: Prune (true branch) \n PRUNE((1 != 0), true); [line 12]\n " shape="invhouse"] +38 [label="38: Prune (true branch) \n PRUNE((1 != 0), true); [line 16]\n " shape="invhouse"] 38 -> 40 ; @@ -49,24 +49,24 @@ digraph iCFG { 37 -> 42 ; -36 [label="36: BinaryOperatorStmt: Assign \n n$14=*&SIL_temp_conditional___26:int [line 15]\n NULLIFY(&SIL_temp_conditional___26,true); [line 15]\n n$17=*&SIL_temp_conditional___31:int [line 15]\n NULLIFY(&SIL_temp_conditional___31,true); [line 15]\n *&x3:int =(n$14 + n$17) [line 15]\n REMOVE_TEMPS(n$14,n$17); [line 15]\n NULLIFY(&x3,false); [line 15]\n " shape="box"] +36 [label="36: BinaryOperatorStmt: Assign \n n$14=*&SIL_temp_conditional___26:int [line 19]\n NULLIFY(&SIL_temp_conditional___26,true); [line 19]\n n$17=*&SIL_temp_conditional___31:int [line 19]\n NULLIFY(&SIL_temp_conditional___31,true); [line 19]\n *&x3:int =(n$14 + n$17) [line 19]\n REMOVE_TEMPS(n$14,n$17); [line 19]\n NULLIFY(&x3,false); [line 19]\n " shape="box"] 36 -> 22 ; 36 -> 23 ; -35 [label="35: ConditinalStmt Branch \n n$16=*&z:int [line 15]\n DECLARE_LOCALS(&SIL_temp_conditional___31); [line 15]\n *&SIL_temp_conditional___31:int =n$16 [line 15]\n REMOVE_TEMPS(n$16); [line 15]\n APPLY_ABSTRACTION; [line 15]\n " shape="box"] +35 [label="35: ConditinalStmt Branch \n n$16=*&z:int [line 19]\n DECLARE_LOCALS(&SIL_temp_conditional___31); [line 19]\n *&SIL_temp_conditional___31:int =n$16 [line 19]\n REMOVE_TEMPS(n$16); [line 19]\n APPLY_ABSTRACTION; [line 19]\n " shape="box"] 35 -> 31 ; -34 [label="34: ConditinalStmt Branch \n n$15=*&z:int [line 15]\n DECLARE_LOCALS(&SIL_temp_conditional___31); [line 15]\n *&SIL_temp_conditional___31:int =n$15 [line 15]\n REMOVE_TEMPS(n$15); [line 15]\n APPLY_ABSTRACTION; [line 15]\n " shape="box"] +34 [label="34: ConditinalStmt Branch \n n$15=*&z:int [line 19]\n DECLARE_LOCALS(&SIL_temp_conditional___31); [line 19]\n *&SIL_temp_conditional___31:int =n$15 [line 19]\n REMOVE_TEMPS(n$15); [line 19]\n APPLY_ABSTRACTION; [line 19]\n " shape="box"] 34 -> 31 ; -33 [label="33: Prune (false branch) \n PRUNE((1 == 0), false); [line 15]\n " shape="invhouse"] +33 [label="33: Prune (false branch) \n PRUNE((1 == 0), false); [line 19]\n " shape="invhouse"] 33 -> 35 ; -32 [label="32: Prune (true branch) \n PRUNE((1 != 0), true); [line 15]\n " shape="invhouse"] +32 [label="32: Prune (true branch) \n PRUNE((1 != 0), true); [line 19]\n " shape="invhouse"] 32 -> 34 ; @@ -74,19 +74,19 @@ digraph iCFG { 31 -> 36 ; -30 [label="30: ConditinalStmt Branch \n n$13=*&z:int [line 15]\n DECLARE_LOCALS(&SIL_temp_conditional___26); [line 15]\n *&SIL_temp_conditional___26:int =n$13 [line 15]\n REMOVE_TEMPS(n$13); [line 15]\n APPLY_ABSTRACTION; [line 15]\n " shape="box"] +30 [label="30: ConditinalStmt Branch \n n$13=*&z:int [line 19]\n DECLARE_LOCALS(&SIL_temp_conditional___26); [line 19]\n *&SIL_temp_conditional___26:int =n$13 [line 19]\n REMOVE_TEMPS(n$13); [line 19]\n APPLY_ABSTRACTION; [line 19]\n " shape="box"] 30 -> 26 ; -29 [label="29: ConditinalStmt Branch \n n$12=*&z:int [line 15]\n DECLARE_LOCALS(&SIL_temp_conditional___26); [line 15]\n *&SIL_temp_conditional___26:int =n$12 [line 15]\n REMOVE_TEMPS(n$12); [line 15]\n APPLY_ABSTRACTION; [line 15]\n " shape="box"] +29 [label="29: ConditinalStmt Branch \n n$12=*&z:int [line 19]\n DECLARE_LOCALS(&SIL_temp_conditional___26); [line 19]\n *&SIL_temp_conditional___26:int =n$12 [line 19]\n REMOVE_TEMPS(n$12); [line 19]\n APPLY_ABSTRACTION; [line 19]\n " shape="box"] 29 -> 26 ; -28 [label="28: Prune (false branch) \n PRUNE((1 == 0), false); [line 15]\n " shape="invhouse"] +28 [label="28: Prune (false branch) \n PRUNE((1 == 0), false); [line 19]\n " shape="invhouse"] 28 -> 30 ; -27 [label="27: Prune (true branch) \n PRUNE((1 != 0), true); [line 15]\n " shape="invhouse"] +27 [label="27: Prune (true branch) \n PRUNE((1 != 0), true); [line 19]\n " shape="invhouse"] 27 -> 29 ; @@ -95,19 +95,19 @@ digraph iCFG { 26 -> 32 ; 26 -> 33 ; -25 [label="25: ConditinalStmt Branch \n n$10=*&z:int [line 19]\n DECLARE_LOCALS(&SIL_temp_conditional___21); [line 19]\n *&SIL_temp_conditional___21:int =n$10 [line 19]\n REMOVE_TEMPS(n$10); [line 19]\n APPLY_ABSTRACTION; [line 19]\n " shape="box"] +25 [label="25: ConditinalStmt Branch \n n$10=*&z:int [line 23]\n DECLARE_LOCALS(&SIL_temp_conditional___21); [line 23]\n *&SIL_temp_conditional___21:int =n$10 [line 23]\n REMOVE_TEMPS(n$10); [line 23]\n APPLY_ABSTRACTION; [line 23]\n " shape="box"] 25 -> 21 ; -24 [label="24: ConditinalStmt Branch \n n$9=*&z:int [line 19]\n DECLARE_LOCALS(&SIL_temp_conditional___21); [line 19]\n *&SIL_temp_conditional___21:int =n$9 [line 19]\n REMOVE_TEMPS(n$9); [line 19]\n APPLY_ABSTRACTION; [line 19]\n " shape="box"] +24 [label="24: ConditinalStmt Branch \n n$9=*&z:int [line 23]\n DECLARE_LOCALS(&SIL_temp_conditional___21); [line 23]\n *&SIL_temp_conditional___21:int =n$9 [line 23]\n REMOVE_TEMPS(n$9); [line 23]\n APPLY_ABSTRACTION; [line 23]\n " shape="box"] 24 -> 21 ; -23 [label="23: Prune (false branch) \n PRUNE((1 == 0), false); [line 19]\n " shape="invhouse"] +23 [label="23: Prune (false branch) \n PRUNE((1 == 0), false); [line 23]\n " shape="invhouse"] 23 -> 25 ; -22 [label="22: Prune (true branch) \n PRUNE((1 != 0), true); [line 19]\n " shape="invhouse"] +22 [label="22: Prune (true branch) \n PRUNE((1 != 0), true); [line 23]\n " shape="invhouse"] 22 -> 24 ; @@ -115,24 +115,24 @@ digraph iCFG { 21 -> 20 ; -20 [label="20: DeclStmt \n n$11=*&SIL_temp_conditional___21:int [line 19]\n NULLIFY(&SIL_temp_conditional___21,true); [line 19]\n *&y1:int =(n$11 + 77) [line 19]\n REMOVE_TEMPS(n$11); [line 19]\n NULLIFY(&y1,false); [line 19]\n " shape="box"] +20 [label="20: DeclStmt \n n$11=*&SIL_temp_conditional___21:int [line 23]\n NULLIFY(&SIL_temp_conditional___21,true); [line 23]\n *&y1:int =(n$11 + 77) [line 23]\n REMOVE_TEMPS(n$11); [line 23]\n NULLIFY(&y1,false); [line 23]\n " shape="box"] 20 -> 16 ; 20 -> 17 ; -19 [label="19: ConditinalStmt Branch \n n$7=*&z:int [line 21]\n DECLARE_LOCALS(&SIL_temp_conditional___15); [line 21]\n *&SIL_temp_conditional___15:int =n$7 [line 21]\n REMOVE_TEMPS(n$7); [line 21]\n APPLY_ABSTRACTION; [line 21]\n " shape="box"] +19 [label="19: ConditinalStmt Branch \n n$7=*&z:int [line 25]\n DECLARE_LOCALS(&SIL_temp_conditional___15); [line 25]\n *&SIL_temp_conditional___15:int =n$7 [line 25]\n REMOVE_TEMPS(n$7); [line 25]\n APPLY_ABSTRACTION; [line 25]\n " shape="box"] 19 -> 15 ; -18 [label="18: ConditinalStmt Branch \n n$6=*&z:int [line 21]\n DECLARE_LOCALS(&SIL_temp_conditional___15); [line 21]\n *&SIL_temp_conditional___15:int =n$6 [line 21]\n REMOVE_TEMPS(n$6); [line 21]\n APPLY_ABSTRACTION; [line 21]\n " shape="box"] +18 [label="18: ConditinalStmt Branch \n n$6=*&z:int [line 25]\n DECLARE_LOCALS(&SIL_temp_conditional___15); [line 25]\n *&SIL_temp_conditional___15:int =n$6 [line 25]\n REMOVE_TEMPS(n$6); [line 25]\n APPLY_ABSTRACTION; [line 25]\n " shape="box"] 18 -> 15 ; -17 [label="17: Prune (false branch) \n PRUNE((1 == 0), false); [line 21]\n " shape="invhouse"] +17 [label="17: Prune (false branch) \n PRUNE((1 == 0), false); [line 25]\n " shape="invhouse"] 17 -> 19 ; -16 [label="16: Prune (true branch) \n PRUNE((1 != 0), true); [line 21]\n " shape="invhouse"] +16 [label="16: Prune (true branch) \n PRUNE((1 != 0), true); [line 25]\n " shape="invhouse"] 16 -> 18 ; @@ -140,24 +140,24 @@ digraph iCFG { 15 -> 14 ; -14 [label="14: DeclStmt \n n$8=*&SIL_temp_conditional___15:int [line 21]\n NULLIFY(&SIL_temp_conditional___15,true); [line 21]\n *&y2:int =(77 + n$8) [line 21]\n REMOVE_TEMPS(n$8); [line 21]\n NULLIFY(&y2,false); [line 21]\n " shape="box"] +14 [label="14: DeclStmt \n n$8=*&SIL_temp_conditional___15:int [line 25]\n NULLIFY(&SIL_temp_conditional___15,true); [line 25]\n *&y2:int =(77 + n$8) [line 25]\n REMOVE_TEMPS(n$8); [line 25]\n NULLIFY(&y2,false); [line 25]\n " shape="box"] 14 -> 5 ; 14 -> 6 ; -13 [label="13: ConditinalStmt Branch \n n$4=*&z:int [line 23]\n DECLARE_LOCALS(&SIL_temp_conditional___9); [line 23]\n *&SIL_temp_conditional___9:int =n$4 [line 23]\n REMOVE_TEMPS(n$4); [line 23]\n NULLIFY(&z,false); [line 23]\n APPLY_ABSTRACTION; [line 23]\n " shape="box"] +13 [label="13: ConditinalStmt Branch \n n$4=*&z:int [line 27]\n DECLARE_LOCALS(&SIL_temp_conditional___9); [line 27]\n *&SIL_temp_conditional___9:int =n$4 [line 27]\n REMOVE_TEMPS(n$4); [line 27]\n NULLIFY(&z,false); [line 27]\n APPLY_ABSTRACTION; [line 27]\n " shape="box"] 13 -> 9 ; -12 [label="12: ConditinalStmt Branch \n n$3=*&z:int [line 23]\n DECLARE_LOCALS(&SIL_temp_conditional___9); [line 23]\n *&SIL_temp_conditional___9:int =n$3 [line 23]\n REMOVE_TEMPS(n$3); [line 23]\n NULLIFY(&z,false); [line 23]\n APPLY_ABSTRACTION; [line 23]\n " shape="box"] +12 [label="12: ConditinalStmt Branch \n n$3=*&z:int [line 27]\n DECLARE_LOCALS(&SIL_temp_conditional___9); [line 27]\n *&SIL_temp_conditional___9:int =n$3 [line 27]\n REMOVE_TEMPS(n$3); [line 27]\n NULLIFY(&z,false); [line 27]\n APPLY_ABSTRACTION; [line 27]\n " shape="box"] 12 -> 9 ; -11 [label="11: Prune (false branch) \n PRUNE((1 == 0), false); [line 23]\n " shape="invhouse"] +11 [label="11: Prune (false branch) \n PRUNE((1 == 0), false); [line 27]\n " shape="invhouse"] 11 -> 13 ; -10 [label="10: Prune (true branch) \n PRUNE((1 != 0), true); [line 23]\n " shape="invhouse"] +10 [label="10: Prune (true branch) \n PRUNE((1 != 0), true); [line 27]\n " shape="invhouse"] 10 -> 12 ; @@ -165,19 +165,19 @@ digraph iCFG { 9 -> 3 ; -8 [label="8: ConditinalStmt Branch \n n$1=*&z:int [line 23]\n DECLARE_LOCALS(&SIL_temp_conditional___4); [line 23]\n *&SIL_temp_conditional___4:int =n$1 [line 23]\n REMOVE_TEMPS(n$1); [line 23]\n APPLY_ABSTRACTION; [line 23]\n " shape="box"] +8 [label="8: ConditinalStmt Branch \n n$1=*&z:int [line 27]\n DECLARE_LOCALS(&SIL_temp_conditional___4); [line 27]\n *&SIL_temp_conditional___4:int =n$1 [line 27]\n REMOVE_TEMPS(n$1); [line 27]\n APPLY_ABSTRACTION; [line 27]\n " shape="box"] 8 -> 4 ; -7 [label="7: ConditinalStmt Branch \n n$0=*&z:int [line 23]\n DECLARE_LOCALS(&SIL_temp_conditional___4); [line 23]\n *&SIL_temp_conditional___4:int =n$0 [line 23]\n REMOVE_TEMPS(n$0); [line 23]\n APPLY_ABSTRACTION; [line 23]\n " shape="box"] +7 [label="7: ConditinalStmt Branch \n n$0=*&z:int [line 27]\n DECLARE_LOCALS(&SIL_temp_conditional___4); [line 27]\n *&SIL_temp_conditional___4:int =n$0 [line 27]\n REMOVE_TEMPS(n$0); [line 27]\n APPLY_ABSTRACTION; [line 27]\n " shape="box"] 7 -> 4 ; -6 [label="6: Prune (false branch) \n PRUNE((1 == 0), false); [line 23]\n " shape="invhouse"] +6 [label="6: Prune (false branch) \n PRUNE((1 == 0), false); [line 27]\n " shape="invhouse"] 6 -> 8 ; -5 [label="5: Prune (true branch) \n PRUNE((1 != 0), true); [line 23]\n " shape="invhouse"] +5 [label="5: Prune (true branch) \n PRUNE((1 != 0), true); [line 27]\n " shape="invhouse"] 5 -> 7 ; @@ -186,14 +186,14 @@ digraph iCFG { 4 -> 10 ; 4 -> 11 ; -3 [label="3: DeclStmt \n n$2=*&SIL_temp_conditional___4:int [line 23]\n NULLIFY(&SIL_temp_conditional___4,true); [line 23]\n n$5=*&SIL_temp_conditional___9:int [line 23]\n NULLIFY(&SIL_temp_conditional___9,true); [line 23]\n *&y3:int =(n$2 + n$5) [line 23]\n REMOVE_TEMPS(n$2,n$5); [line 23]\n NULLIFY(&y3,false); [line 23]\n APPLY_ABSTRACTION; [line 23]\n " shape="box"] +3 [label="3: DeclStmt \n n$2=*&SIL_temp_conditional___4:int [line 27]\n NULLIFY(&SIL_temp_conditional___4,true); [line 27]\n n$5=*&SIL_temp_conditional___9:int [line 27]\n NULLIFY(&SIL_temp_conditional___9,true); [line 27]\n *&y3:int =(n$2 + n$5) [line 27]\n REMOVE_TEMPS(n$2,n$5); [line 27]\n NULLIFY(&y3,false); [line 27]\n APPLY_ABSTRACTION; [line 27]\n " shape="box"] 3 -> 2 ; 2 [label="2: Exit binop_with_side_effects \n " color=yellow style=filled] -1 [label="1: Start binop_with_side_effects\nFormals: z:int \nLocals: x1:int x2:int x3:int y1:int y2:int y3:int \n DECLARE_LOCALS(&return,&x1,&x2,&x3,&y1,&y2,&y3); [line 6]\n NULLIFY(&x1,false); [line 6]\n NULLIFY(&x2,false); [line 6]\n NULLIFY(&x3,false); [line 6]\n NULLIFY(&y1,false); [line 6]\n NULLIFY(&y2,false); [line 6]\n NULLIFY(&y3,false); [line 6]\n " color=yellow style=filled] +1 [label="1: Start binop_with_side_effects\nFormals: z:int \nLocals: x1:int x2:int x3:int y1:int y2:int y3:int \n DECLARE_LOCALS(&return,&x1,&x2,&x3,&y1,&y2,&y3); [line 10]\n NULLIFY(&x1,false); [line 10]\n NULLIFY(&x2,false); [line 10]\n NULLIFY(&x3,false); [line 10]\n NULLIFY(&y1,false); [line 10]\n NULLIFY(&y2,false); [line 10]\n NULLIFY(&y3,false); [line 10]\n " color=yellow style=filled] 1 -> 44 ; diff --git a/infer/tests/codetoanalyze/c/frontend/conditional_operator/cond2.c b/infer/tests/codetoanalyze/c/frontend/conditional_operator/cond2.c index 249591e03..63cfb3d8a 100644 --- a/infer/tests/codetoanalyze/c/frontend/conditional_operator/cond2.c +++ b/infer/tests/codetoanalyze/c/frontend/conditional_operator/cond2.c @@ -1,6 +1,10 @@ /* - * Copyright (c) 2013 - Facebook. - * All rights reserved. +* Copyright (c) 2013 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ int foo() diff --git a/infer/tests/codetoanalyze/c/frontend/conditional_operator/cond2.dot b/infer/tests/codetoanalyze/c/frontend/conditional_operator/cond2.dot index cb757c968..4834f1e9a 100644 --- a/infer/tests/codetoanalyze/c/frontend/conditional_operator/cond2.dot +++ b/infer/tests/codetoanalyze/c/frontend/conditional_operator/cond2.dot @@ -1,26 +1,26 @@ digraph iCFG { -57 [label="57: BinaryOperatorStmt: Assign \n n$14=*&SIL_temp_conditional___51:int [line 19]\n NULLIFY(&SIL_temp_conditional___51,true); [line 19]\n *&y:int =n$14 [line 19]\n REMOVE_TEMPS(n$14); [line 19]\n NULLIFY(&y,false); [line 19]\n " shape="box"] +57 [label="57: BinaryOperatorStmt: Assign \n n$14=*&SIL_temp_conditional___51:int [line 23]\n NULLIFY(&SIL_temp_conditional___51,true); [line 23]\n *&y:int =n$14 [line 23]\n REMOVE_TEMPS(n$14); [line 23]\n NULLIFY(&y,false); [line 23]\n " shape="box"] 57 -> 42 ; 57 -> 43 ; -56 [label="56: UnaryOperator \n n$13=*&x:int [line 19]\n *&x:int =(n$13 - 1) [line 19]\n DECLARE_LOCALS(&SIL_temp_conditional___51); [line 19]\n *&SIL_temp_conditional___51:int =n$13 [line 19]\n REMOVE_TEMPS(n$13); [line 19]\n NULLIFY(&x,false); [line 19]\n APPLY_ABSTRACTION; [line 19]\n " shape="box"] +56 [label="56: UnaryOperator \n n$13=*&x:int [line 23]\n *&x:int =(n$13 - 1) [line 23]\n DECLARE_LOCALS(&SIL_temp_conditional___51); [line 23]\n *&SIL_temp_conditional___51:int =n$13 [line 23]\n REMOVE_TEMPS(n$13); [line 23]\n NULLIFY(&x,false); [line 23]\n APPLY_ABSTRACTION; [line 23]\n " shape="box"] 56 -> 51 ; -55 [label="55: UnaryOperator \n n$12=*&x:int [line 19]\n *&x:int =(n$12 + 1) [line 19]\n DECLARE_LOCALS(&SIL_temp_conditional___51); [line 19]\n *&SIL_temp_conditional___51:int =(n$12 + 1) [line 19]\n REMOVE_TEMPS(n$12); [line 19]\n NULLIFY(&x,false); [line 19]\n APPLY_ABSTRACTION; [line 19]\n " shape="box"] +55 [label="55: UnaryOperator \n n$12=*&x:int [line 23]\n *&x:int =(n$12 + 1) [line 23]\n DECLARE_LOCALS(&SIL_temp_conditional___51); [line 23]\n *&SIL_temp_conditional___51:int =(n$12 + 1) [line 23]\n REMOVE_TEMPS(n$12); [line 23]\n NULLIFY(&x,false); [line 23]\n APPLY_ABSTRACTION; [line 23]\n " shape="box"] 55 -> 51 ; -54 [label="54: Prune (false branch) \n PRUNE(((n$11 > 1) == 0), false); [line 19]\n REMOVE_TEMPS(n$11); [line 19]\n " shape="invhouse"] +54 [label="54: Prune (false branch) \n PRUNE(((n$11 > 1) == 0), false); [line 23]\n REMOVE_TEMPS(n$11); [line 23]\n " shape="invhouse"] 54 -> 56 ; -53 [label="53: Prune (true branch) \n PRUNE(((n$11 > 1) != 0), true); [line 19]\n REMOVE_TEMPS(n$11); [line 19]\n " shape="invhouse"] +53 [label="53: Prune (true branch) \n PRUNE(((n$11 > 1) != 0), true); [line 23]\n REMOVE_TEMPS(n$11); [line 23]\n " shape="invhouse"] 53 -> 55 ; -52 [label="52: BinaryOperatorStmt: GT \n *&x:int =1 [line 19]\n n$11=*&x:int [line 19]\n " shape="box"] +52 [label="52: BinaryOperatorStmt: GT \n *&x:int =1 [line 23]\n n$11=*&x:int [line 23]\n " shape="box"] 52 -> 53 ; @@ -29,40 +29,40 @@ digraph iCFG { 51 -> 57 ; -50 [label="50: ConditinalStmt Branch \n DECLARE_LOCALS(&SIL_temp_conditional___40); [line 20]\n *&SIL_temp_conditional___40:int =0 [line 20]\n APPLY_ABSTRACTION; [line 20]\n " shape="box"] +50 [label="50: ConditinalStmt Branch \n DECLARE_LOCALS(&SIL_temp_conditional___40); [line 24]\n *&SIL_temp_conditional___40:int =0 [line 24]\n APPLY_ABSTRACTION; [line 24]\n " shape="box"] 50 -> 40 ; -49 [label="49: BinaryOperatorStmt: Assign \n *&x:int =1 [line 20]\n n$9=*&x:int [line 20]\n DECLARE_LOCALS(&SIL_temp_conditional___40); [line 20]\n *&SIL_temp_conditional___40:int =n$9 [line 20]\n REMOVE_TEMPS(n$9); [line 20]\n NULLIFY(&x,false); [line 20]\n APPLY_ABSTRACTION; [line 20]\n " shape="box"] +49 [label="49: BinaryOperatorStmt: Assign \n *&x:int =1 [line 24]\n n$9=*&x:int [line 24]\n DECLARE_LOCALS(&SIL_temp_conditional___40); [line 24]\n *&SIL_temp_conditional___40:int =n$9 [line 24]\n REMOVE_TEMPS(n$9); [line 24]\n NULLIFY(&x,false); [line 24]\n APPLY_ABSTRACTION; [line 24]\n " shape="box"] 49 -> 40 ; -48 [label="48: Prune (false branch) \n PRUNE(((n$8 > 1) == 0), false); [line 20]\n REMOVE_TEMPS(n$8); [line 20]\n " shape="invhouse"] +48 [label="48: Prune (false branch) \n PRUNE(((n$8 > 1) == 0), false); [line 24]\n REMOVE_TEMPS(n$8); [line 24]\n " shape="invhouse"] 48 -> 50 ; -47 [label="47: Prune (true branch) \n PRUNE(((n$8 > 1) != 0), true); [line 20]\n REMOVE_TEMPS(n$8); [line 20]\n " shape="invhouse"] +47 [label="47: Prune (true branch) \n PRUNE(((n$8 > 1) != 0), true); [line 24]\n REMOVE_TEMPS(n$8); [line 24]\n " shape="invhouse"] 47 -> 49 ; -46 [label="46: BinaryOperatorStmt: GT \n n$8=*&SIL_temp_conditional___41:int [line 20]\n NULLIFY(&SIL_temp_conditional___41,true); [line 20]\n " shape="box"] +46 [label="46: BinaryOperatorStmt: GT \n n$8=*&SIL_temp_conditional___41:int [line 24]\n NULLIFY(&SIL_temp_conditional___41,true); [line 24]\n " shape="box"] 46 -> 47 ; 46 -> 48 ; -45 [label="45: ConditinalStmt Branch \n DECLARE_LOCALS(&SIL_temp_conditional___41); [line 20]\n *&SIL_temp_conditional___41:int =2 [line 20]\n APPLY_ABSTRACTION; [line 20]\n " shape="box"] +45 [label="45: ConditinalStmt Branch \n DECLARE_LOCALS(&SIL_temp_conditional___41); [line 24]\n *&SIL_temp_conditional___41:int =2 [line 24]\n APPLY_ABSTRACTION; [line 24]\n " shape="box"] 45 -> 41 ; -44 [label="44: ConditinalStmt Branch \n DECLARE_LOCALS(&SIL_temp_conditional___41); [line 20]\n *&SIL_temp_conditional___41:int =1 [line 20]\n APPLY_ABSTRACTION; [line 20]\n " shape="box"] +44 [label="44: ConditinalStmt Branch \n DECLARE_LOCALS(&SIL_temp_conditional___41); [line 24]\n *&SIL_temp_conditional___41:int =1 [line 24]\n APPLY_ABSTRACTION; [line 24]\n " shape="box"] 44 -> 41 ; -43 [label="43: Prune (false branch) \n PRUNE(((3 > 4) == 0), false); [line 20]\n " shape="invhouse"] +43 [label="43: Prune (false branch) \n PRUNE(((3 > 4) == 0), false); [line 24]\n " shape="invhouse"] 43 -> 45 ; -42 [label="42: Prune (true branch) \n PRUNE(((3 > 4) != 0), true); [line 20]\n " shape="invhouse"] +42 [label="42: Prune (true branch) \n PRUNE(((3 > 4) != 0), true); [line 24]\n " shape="invhouse"] 42 -> 44 ; @@ -74,44 +74,44 @@ digraph iCFG { 40 -> 39 ; -39 [label="39: Return Stmt \n n$10=*&SIL_temp_conditional___40:int [line 20]\n NULLIFY(&SIL_temp_conditional___40,true); [line 20]\n *&return:int =(0 + n$10) [line 20]\n REMOVE_TEMPS(n$10); [line 20]\n APPLY_ABSTRACTION; [line 20]\n " shape="box"] +39 [label="39: Return Stmt \n n$10=*&SIL_temp_conditional___40:int [line 24]\n NULLIFY(&SIL_temp_conditional___40,true); [line 24]\n *&return:int =(0 + n$10) [line 24]\n REMOVE_TEMPS(n$10); [line 24]\n APPLY_ABSTRACTION; [line 24]\n " shape="box"] 39 -> 38 ; 38 [label="38: Exit bar \n " color=yellow style=filled] -37 [label="37: Start bar\nFormals: \nLocals: x:int y:int \n DECLARE_LOCALS(&return,&x,&y); [line 17]\n NULLIFY(&x,false); [line 17]\n NULLIFY(&y,false); [line 17]\n " color=yellow style=filled] +37 [label="37: Start bar\nFormals: \nLocals: x:int y:int \n DECLARE_LOCALS(&return,&x,&y); [line 21]\n NULLIFY(&x,false); [line 21]\n NULLIFY(&y,false); [line 21]\n " color=yellow style=filled] 37 -> 52 ; -36 [label="36: DeclStmt \n *&x:int =5 [line 8]\n " shape="box"] +36 [label="36: DeclStmt \n *&x:int =5 [line 12]\n " shape="box"] 36 -> 30 ; 36 -> 31 ; -35 [label="35: BinaryOperatorStmt: Assign \n NULLIFY(&x,false); [line 9]\n *&x:int =0 [line 9]\n APPLY_ABSTRACTION; [line 9]\n " shape="box"] +35 [label="35: BinaryOperatorStmt: Assign \n NULLIFY(&x,false); [line 13]\n *&x:int =0 [line 13]\n APPLY_ABSTRACTION; [line 13]\n " shape="box"] 35 -> 29 ; -34 [label="34: Prune (false branch) \n PRUNE(((7 < n$7) == 0), false); [line 9]\n REMOVE_TEMPS(n$7); [line 9]\n APPLY_ABSTRACTION; [line 9]\n " shape="invhouse"] +34 [label="34: Prune (false branch) \n PRUNE(((7 < n$7) == 0), false); [line 13]\n REMOVE_TEMPS(n$7); [line 13]\n APPLY_ABSTRACTION; [line 13]\n " shape="invhouse"] 34 -> 29 ; -33 [label="33: Prune (true branch) \n PRUNE(((7 < n$7) != 0), true); [line 9]\n REMOVE_TEMPS(n$7); [line 9]\n APPLY_ABSTRACTION; [line 9]\n " shape="invhouse"] +33 [label="33: Prune (true branch) \n PRUNE(((7 < n$7) != 0), true); [line 13]\n REMOVE_TEMPS(n$7); [line 13]\n APPLY_ABSTRACTION; [line 13]\n " shape="invhouse"] 33 -> 35 ; -32 [label="32: BinaryOperatorStmt: LT \n n$7=*&x:int [line 9]\n *&x:int =(n$7 + 1) [line 9]\n " shape="box"] +32 [label="32: BinaryOperatorStmt: LT \n n$7=*&x:int [line 13]\n *&x:int =(n$7 + 1) [line 13]\n " shape="box"] 32 -> 33 ; 32 -> 34 ; -31 [label="31: Prune (false branch) \n PRUNE(((3 < 4) == 0), false); [line 9]\n " shape="invhouse"] +31 [label="31: Prune (false branch) \n PRUNE(((3 < 4) == 0), false); [line 13]\n " shape="invhouse"] 31 -> 32 ; -30 [label="30: Prune (true branch) \n PRUNE(((3 < 4) != 0), true); [line 9]\n APPLY_ABSTRACTION; [line 9]\n " shape="invhouse"] +30 [label="30: Prune (true branch) \n PRUNE(((3 < 4) != 0), true); [line 13]\n APPLY_ABSTRACTION; [line 13]\n " shape="invhouse"] 30 -> 35 ; @@ -119,37 +119,37 @@ digraph iCFG { 29 -> 28 ; -28 [label="28: DeclStmt \n *&y:int =19 [line 10]\n " shape="box"] +28 [label="28: DeclStmt \n *&y:int =19 [line 14]\n " shape="box"] 28 -> 21 ; 28 -> 22 ; -27 [label="27: ConditinalStmt Branch \n DECLARE_LOCALS(&SIL_temp_conditional___20); [line 11]\n *&SIL_temp_conditional___20:int =2 [line 11]\n APPLY_ABSTRACTION; [line 11]\n " shape="box"] +27 [label="27: ConditinalStmt Branch \n DECLARE_LOCALS(&SIL_temp_conditional___20); [line 15]\n *&SIL_temp_conditional___20:int =2 [line 15]\n APPLY_ABSTRACTION; [line 15]\n " shape="box"] 27 -> 20 ; -26 [label="26: ConditinalStmt Branch \n NULLIFY(&x,false); [line 11]\n NULLIFY(&y,false); [line 11]\n DECLARE_LOCALS(&SIL_temp_conditional___20); [line 11]\n *&SIL_temp_conditional___20:int =1 [line 11]\n APPLY_ABSTRACTION; [line 11]\n " shape="box"] +26 [label="26: ConditinalStmt Branch \n NULLIFY(&x,false); [line 15]\n NULLIFY(&y,false); [line 15]\n DECLARE_LOCALS(&SIL_temp_conditional___20); [line 15]\n *&SIL_temp_conditional___20:int =1 [line 15]\n APPLY_ABSTRACTION; [line 15]\n " shape="box"] 26 -> 20 ; -25 [label="25: Prune (false branch) \n PRUNE(((7 < (n$4 - n$5)) == 0), false); [line 11]\n REMOVE_TEMPS(n$4,n$5); [line 11]\n " shape="invhouse"] +25 [label="25: Prune (false branch) \n PRUNE(((7 < (n$4 - n$5)) == 0), false); [line 15]\n REMOVE_TEMPS(n$4,n$5); [line 15]\n " shape="invhouse"] 25 -> 27 ; -24 [label="24: Prune (true branch) \n PRUNE(((7 < (n$4 - n$5)) != 0), true); [line 11]\n REMOVE_TEMPS(n$4,n$5); [line 11]\n APPLY_ABSTRACTION; [line 11]\n " shape="invhouse"] +24 [label="24: Prune (true branch) \n PRUNE(((7 < (n$4 - n$5)) != 0), true); [line 15]\n REMOVE_TEMPS(n$4,n$5); [line 15]\n APPLY_ABSTRACTION; [line 15]\n " shape="invhouse"] 24 -> 26 ; -23 [label="23: BinaryOperatorStmt: LT \n n$4=*&x:int [line 11]\n *&x:int =(n$4 + 1) [line 11]\n n$5=*&y:int [line 11]\n NULLIFY(&x,false); [line 11]\n NULLIFY(&y,false); [line 11]\n " shape="box"] +23 [label="23: BinaryOperatorStmt: LT \n n$4=*&x:int [line 15]\n *&x:int =(n$4 + 1) [line 15]\n n$5=*&y:int [line 15]\n NULLIFY(&x,false); [line 15]\n NULLIFY(&y,false); [line 15]\n " shape="box"] 23 -> 24 ; 23 -> 25 ; -22 [label="22: Prune (false branch) \n PRUNE(((3 < 4) == 0), false); [line 11]\n " shape="invhouse"] +22 [label="22: Prune (false branch) \n PRUNE(((3 < 4) == 0), false); [line 15]\n " shape="invhouse"] 22 -> 23 ; -21 [label="21: Prune (true branch) \n PRUNE(((3 < 4) != 0), true); [line 11]\n APPLY_ABSTRACTION; [line 11]\n " shape="invhouse"] +21 [label="21: Prune (true branch) \n PRUNE(((3 < 4) != 0), true); [line 15]\n APPLY_ABSTRACTION; [line 15]\n " shape="invhouse"] 21 -> 26 ; @@ -157,46 +157,46 @@ digraph iCFG { 20 -> 19 ; -19 [label="19: DeclStmt \n n$6=*&SIL_temp_conditional___20:int [line 11]\n NULLIFY(&SIL_temp_conditional___20,true); [line 11]\n *&n:int =n$6 [line 11]\n REMOVE_TEMPS(n$6); [line 11]\n NULLIFY(&n,false); [line 11]\n " shape="box"] +19 [label="19: DeclStmt \n n$6=*&SIL_temp_conditional___20:int [line 15]\n NULLIFY(&SIL_temp_conditional___20,true); [line 15]\n *&n:int =n$6 [line 15]\n REMOVE_TEMPS(n$6); [line 15]\n NULLIFY(&n,false); [line 15]\n " shape="box"] 19 -> 10 ; 19 -> 11 ; -18 [label="18: BinaryOperatorStmt: Assign \n n$3=*&SIL_temp_conditional___9:int [line 12]\n NULLIFY(&SIL_temp_conditional___9,true); [line 12]\n *&n:int =n$3 [line 12]\n REMOVE_TEMPS(n$3); [line 12]\n NULLIFY(&n,false); [line 12]\n " shape="box"] +18 [label="18: BinaryOperatorStmt: Assign \n n$3=*&SIL_temp_conditional___9:int [line 16]\n NULLIFY(&SIL_temp_conditional___9,true); [line 16]\n *&n:int =n$3 [line 16]\n REMOVE_TEMPS(n$3); [line 16]\n NULLIFY(&n,false); [line 16]\n " shape="box"] 18 -> 5 ; 18 -> 6 ; -17 [label="17: ConditinalStmt Branch \n DECLARE_LOCALS(&SIL_temp_conditional___13); [line 12]\n *&SIL_temp_conditional___13:int =2 [line 12]\n APPLY_ABSTRACTION; [line 12]\n " shape="box"] +17 [label="17: ConditinalStmt Branch \n DECLARE_LOCALS(&SIL_temp_conditional___13); [line 16]\n *&SIL_temp_conditional___13:int =2 [line 16]\n APPLY_ABSTRACTION; [line 16]\n " shape="box"] 17 -> 13 ; -16 [label="16: ConditinalStmt Branch \n DECLARE_LOCALS(&SIL_temp_conditional___13); [line 12]\n *&SIL_temp_conditional___13:int =1 [line 12]\n APPLY_ABSTRACTION; [line 12]\n " shape="box"] +16 [label="16: ConditinalStmt Branch \n DECLARE_LOCALS(&SIL_temp_conditional___13); [line 16]\n *&SIL_temp_conditional___13:int =1 [line 16]\n APPLY_ABSTRACTION; [line 16]\n " shape="box"] 16 -> 13 ; -15 [label="15: Prune (false branch) \n PRUNE(((5 > 4) == 0), false); [line 12]\n " shape="invhouse"] +15 [label="15: Prune (false branch) \n PRUNE(((5 > 4) == 0), false); [line 16]\n " shape="invhouse"] 15 -> 17 ; -14 [label="14: Prune (true branch) \n PRUNE(((5 > 4) != 0), true); [line 12]\n " shape="invhouse"] +14 [label="14: Prune (true branch) \n PRUNE(((5 > 4) != 0), true); [line 16]\n " shape="invhouse"] 14 -> 16 ; -13 [label="13: Temp Join Node \n n$1=*&SIL_temp_conditional___13:int [line 12]\n DECLARE_LOCALS(&SIL_temp_conditional___9); [line 12]\n *&SIL_temp_conditional___9:int =n$1 [line 12]\n NULLIFY(&SIL_temp_conditional___13,true); [line 12]\n REMOVE_TEMPS(n$1); [line 12]\n APPLY_ABSTRACTION; [line 12]\n " shape="box"] +13 [label="13: Temp Join Node \n n$1=*&SIL_temp_conditional___13:int [line 16]\n DECLARE_LOCALS(&SIL_temp_conditional___9); [line 16]\n *&SIL_temp_conditional___9:int =n$1 [line 16]\n NULLIFY(&SIL_temp_conditional___13,true); [line 16]\n REMOVE_TEMPS(n$1); [line 16]\n APPLY_ABSTRACTION; [line 16]\n " shape="box"] 13 -> 9 ; -12 [label="12: ConditinalStmt Branch \n DECLARE_LOCALS(&SIL_temp_conditional___9); [line 12]\n *&SIL_temp_conditional___9:int =1 [line 12]\n APPLY_ABSTRACTION; [line 12]\n " shape="box"] +12 [label="12: ConditinalStmt Branch \n DECLARE_LOCALS(&SIL_temp_conditional___9); [line 16]\n *&SIL_temp_conditional___9:int =1 [line 16]\n APPLY_ABSTRACTION; [line 16]\n " shape="box"] 12 -> 9 ; -11 [label="11: Prune (false branch) \n PRUNE(((2 < 1) == 0), false); [line 12]\n " shape="invhouse"] +11 [label="11: Prune (false branch) \n PRUNE(((2 < 1) == 0), false); [line 16]\n " shape="invhouse"] 11 -> 14 ; 11 -> 15 ; -10 [label="10: Prune (true branch) \n PRUNE(((2 < 1) != 0), true); [line 12]\n " shape="invhouse"] +10 [label="10: Prune (true branch) \n PRUNE(((2 < 1) != 0), true); [line 16]\n " shape="invhouse"] 10 -> 12 ; @@ -204,19 +204,19 @@ digraph iCFG { 9 -> 18 ; -8 [label="8: ConditinalStmt Branch \n DECLARE_LOCALS(&SIL_temp_conditional___4); [line 13]\n *&SIL_temp_conditional___4:int =0 [line 13]\n APPLY_ABSTRACTION; [line 13]\n " shape="box"] +8 [label="8: ConditinalStmt Branch \n DECLARE_LOCALS(&SIL_temp_conditional___4); [line 17]\n *&SIL_temp_conditional___4:int =0 [line 17]\n APPLY_ABSTRACTION; [line 17]\n " shape="box"] 8 -> 4 ; -7 [label="7: ConditinalStmt Branch \n DECLARE_LOCALS(&SIL_temp_conditional___4); [line 13]\n *&SIL_temp_conditional___4:int =1 [line 13]\n APPLY_ABSTRACTION; [line 13]\n " shape="box"] +7 [label="7: ConditinalStmt Branch \n DECLARE_LOCALS(&SIL_temp_conditional___4); [line 17]\n *&SIL_temp_conditional___4:int =1 [line 17]\n APPLY_ABSTRACTION; [line 17]\n " shape="box"] 7 -> 4 ; -6 [label="6: Prune (false branch) \n PRUNE(((7 > 9) == 0), false); [line 13]\n " shape="invhouse"] +6 [label="6: Prune (false branch) \n PRUNE(((7 > 9) == 0), false); [line 17]\n " shape="invhouse"] 6 -> 8 ; -5 [label="5: Prune (true branch) \n PRUNE(((7 > 9) != 0), true); [line 13]\n " shape="invhouse"] +5 [label="5: Prune (true branch) \n PRUNE(((7 > 9) != 0), true); [line 17]\n " shape="invhouse"] 5 -> 7 ; @@ -224,14 +224,14 @@ digraph iCFG { 4 -> 3 ; -3 [label="3: Return Stmt \n n$0=*&SIL_temp_conditional___4:int [line 13]\n NULLIFY(&SIL_temp_conditional___4,true); [line 13]\n *&return:int =(0 + n$0) [line 13]\n REMOVE_TEMPS(n$0); [line 13]\n APPLY_ABSTRACTION; [line 13]\n " shape="box"] +3 [label="3: Return Stmt \n n$0=*&SIL_temp_conditional___4:int [line 17]\n NULLIFY(&SIL_temp_conditional___4,true); [line 17]\n *&return:int =(0 + n$0) [line 17]\n REMOVE_TEMPS(n$0); [line 17]\n APPLY_ABSTRACTION; [line 17]\n " shape="box"] 3 -> 2 ; 2 [label="2: Exit foo \n " color=yellow style=filled] -1 [label="1: Start foo\nFormals: \nLocals: x:int y:int n:int \n DECLARE_LOCALS(&return,&x,&y,&n); [line 6]\n NULLIFY(&n,false); [line 6]\n NULLIFY(&x,false); [line 6]\n NULLIFY(&y,false); [line 6]\n " color=yellow style=filled] +1 [label="1: Start foo\nFormals: \nLocals: x:int y:int n:int \n DECLARE_LOCALS(&return,&x,&y,&n); [line 10]\n NULLIFY(&n,false); [line 10]\n NULLIFY(&x,false); [line 10]\n NULLIFY(&y,false); [line 10]\n " color=yellow style=filled] 1 -> 36 ; diff --git a/infer/tests/codetoanalyze/c/frontend/conditional_operator/conditional_operator.c b/infer/tests/codetoanalyze/c/frontend/conditional_operator/conditional_operator.c index d1cc3598e..0b05ac723 100644 --- a/infer/tests/codetoanalyze/c/frontend/conditional_operator/conditional_operator.c +++ b/infer/tests/codetoanalyze/c/frontend/conditional_operator/conditional_operator.c @@ -1,6 +1,10 @@ /* - * Copyright (c) 2013 - Facebook. - * All rights reserved. +* Copyright (c) 2013 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ #include diff --git a/infer/tests/codetoanalyze/c/frontend/conditional_operator/conditional_operator.dot b/infer/tests/codetoanalyze/c/frontend/conditional_operator/conditional_operator.dot index 77f249f0b..3a7010ac8 100644 --- a/infer/tests/codetoanalyze/c/frontend/conditional_operator/conditional_operator.dot +++ b/infer/tests/codetoanalyze/c/frontend/conditional_operator/conditional_operator.dot @@ -1,17 +1,17 @@ digraph iCFG { -54 [label="54: ConditinalStmt Branch \n NULLIFY(&p,false); [line 38]\n DECLARE_LOCALS(&SIL_temp_conditional___50); [line 38]\n *&SIL_temp_conditional___50:int =0 [line 38]\n APPLY_ABSTRACTION; [line 38]\n " shape="box"] +54 [label="54: ConditinalStmt Branch \n NULLIFY(&p,false); [line 42]\n DECLARE_LOCALS(&SIL_temp_conditional___50); [line 42]\n *&SIL_temp_conditional___50:int =0 [line 42]\n APPLY_ABSTRACTION; [line 42]\n " shape="box"] 54 -> 50 ; -53 [label="53: UnaryOperator \n n$21=*&p:int * [line 38]\n n$22=*n$21:int [line 38]\n DECLARE_LOCALS(&SIL_temp_conditional___50); [line 38]\n *&SIL_temp_conditional___50:int =n$22 [line 38]\n REMOVE_TEMPS(n$21,n$22); [line 38]\n NULLIFY(&p,false); [line 38]\n APPLY_ABSTRACTION; [line 38]\n " shape="box"] +53 [label="53: UnaryOperator \n n$21=*&p:int * [line 42]\n n$22=*n$21:int [line 42]\n DECLARE_LOCALS(&SIL_temp_conditional___50); [line 42]\n *&SIL_temp_conditional___50:int =n$22 [line 42]\n REMOVE_TEMPS(n$21,n$22); [line 42]\n NULLIFY(&p,false); [line 42]\n APPLY_ABSTRACTION; [line 42]\n " shape="box"] 53 -> 50 ; -52 [label="52: Prune (false branch) \n PRUNE((1 == 0), false); [line 38]\n " shape="invhouse"] +52 [label="52: Prune (false branch) \n PRUNE((1 == 0), false); [line 42]\n " shape="invhouse"] 52 -> 54 ; -51 [label="51: Prune (true branch) \n PRUNE((1 != 0), true); [line 38]\n " shape="invhouse"] +51 [label="51: Prune (true branch) \n PRUNE((1 != 0), true); [line 42]\n " shape="invhouse"] 51 -> 53 ; @@ -19,35 +19,35 @@ digraph iCFG { 50 -> 49 ; -49 [label="49: DeclStmt \n n$23=*&SIL_temp_conditional___50:int [line 38]\n NULLIFY(&SIL_temp_conditional___50,true); [line 38]\n *&z:int =n$23 [line 38]\n REMOVE_TEMPS(n$23); [line 38]\n " shape="box"] +49 [label="49: DeclStmt \n n$23=*&SIL_temp_conditional___50:int [line 42]\n NULLIFY(&SIL_temp_conditional___50,true); [line 42]\n *&z:int =n$23 [line 42]\n REMOVE_TEMPS(n$23); [line 42]\n " shape="box"] 49 -> 48 ; -48 [label="48: Return Stmt \n n$20=*&z:int [line 39]\n *&return:int =n$20 [line 39]\n REMOVE_TEMPS(n$20); [line 39]\n NULLIFY(&z,false); [line 39]\n APPLY_ABSTRACTION; [line 39]\n " shape="box"] +48 [label="48: Return Stmt \n n$20=*&z:int [line 43]\n *&return:int =n$20 [line 43]\n REMOVE_TEMPS(n$20); [line 43]\n NULLIFY(&z,false); [line 43]\n APPLY_ABSTRACTION; [line 43]\n " shape="box"] 48 -> 47 ; 47 [label="47: Exit test6 \n " color=yellow style=filled] -46 [label="46: Start test6\nFormals: p:int *\nLocals: z:int \n DECLARE_LOCALS(&return,&z); [line 37]\n NULLIFY(&z,false); [line 37]\n " color=yellow style=filled] +46 [label="46: Start test6\nFormals: p:int *\nLocals: z:int \n DECLARE_LOCALS(&return,&z); [line 41]\n NULLIFY(&z,false); [line 41]\n " color=yellow style=filled] 46 -> 51 ; 46 -> 52 ; -45 [label="45: ConditinalStmt Branch \n NULLIFY(&b,false); [line 34]\n DECLARE_LOCALS(&SIL_temp_conditional___41); [line 34]\n *&SIL_temp_conditional___41:int =1 [line 34]\n APPLY_ABSTRACTION; [line 34]\n " shape="box"] +45 [label="45: ConditinalStmt Branch \n NULLIFY(&b,false); [line 38]\n DECLARE_LOCALS(&SIL_temp_conditional___41); [line 38]\n *&SIL_temp_conditional___41:int =1 [line 38]\n APPLY_ABSTRACTION; [line 38]\n " shape="box"] 45 -> 41 ; -44 [label="44: ConditinalStmt Branch \n n$18=*&b:int [line 34]\n DECLARE_LOCALS(&SIL_temp_conditional___41); [line 34]\n *&SIL_temp_conditional___41:int =n$18 [line 34]\n REMOVE_TEMPS(n$18); [line 34]\n NULLIFY(&b,false); [line 34]\n APPLY_ABSTRACTION; [line 34]\n " shape="box"] +44 [label="44: ConditinalStmt Branch \n n$18=*&b:int [line 38]\n DECLARE_LOCALS(&SIL_temp_conditional___41); [line 38]\n *&SIL_temp_conditional___41:int =n$18 [line 38]\n REMOVE_TEMPS(n$18); [line 38]\n NULLIFY(&b,false); [line 38]\n APPLY_ABSTRACTION; [line 38]\n " shape="box"] 44 -> 41 ; -43 [label="43: Prune (false branch) \n n$17=*&b:int [line 34]\n PRUNE((n$17 == 0), false); [line 34]\n REMOVE_TEMPS(n$17); [line 34]\n " shape="invhouse"] +43 [label="43: Prune (false branch) \n n$17=*&b:int [line 38]\n PRUNE((n$17 == 0), false); [line 38]\n REMOVE_TEMPS(n$17); [line 38]\n " shape="invhouse"] 43 -> 45 ; -42 [label="42: Prune (true branch) \n n$17=*&b:int [line 34]\n PRUNE((n$17 != 0), true); [line 34]\n REMOVE_TEMPS(n$17); [line 34]\n " shape="invhouse"] +42 [label="42: Prune (true branch) \n n$17=*&b:int [line 38]\n PRUNE((n$17 != 0), true); [line 38]\n REMOVE_TEMPS(n$17); [line 38]\n " shape="invhouse"] 42 -> 44 ; @@ -55,31 +55,31 @@ digraph iCFG { 41 -> 40 ; -40 [label="40: Return Stmt \n n$19=*&SIL_temp_conditional___41:int [line 34]\n NULLIFY(&SIL_temp_conditional___41,true); [line 34]\n *&return:int =n$19 [line 34]\n REMOVE_TEMPS(n$19); [line 34]\n APPLY_ABSTRACTION; [line 34]\n " shape="box"] +40 [label="40: Return Stmt \n n$19=*&SIL_temp_conditional___41:int [line 38]\n NULLIFY(&SIL_temp_conditional___41,true); [line 38]\n *&return:int =n$19 [line 38]\n REMOVE_TEMPS(n$19); [line 38]\n APPLY_ABSTRACTION; [line 38]\n " shape="box"] 40 -> 39 ; 39 [label="39: Exit test5 \n " color=yellow style=filled] -38 [label="38: Start test5\nFormals: b:int \nLocals: \n DECLARE_LOCALS(&return); [line 33]\n " color=yellow style=filled] +38 [label="38: Start test5\nFormals: b:int \nLocals: \n DECLARE_LOCALS(&return); [line 37]\n " color=yellow style=filled] 38 -> 42 ; 38 -> 43 ; -37 [label="37: ConditinalStmt Branch \n NULLIFY(&b,false); [line 29]\n DECLARE_LOCALS(&SIL_temp_conditional___33); [line 29]\n *&SIL_temp_conditional___33:int =1 [line 29]\n APPLY_ABSTRACTION; [line 29]\n " shape="box"] +37 [label="37: ConditinalStmt Branch \n NULLIFY(&b,false); [line 33]\n DECLARE_LOCALS(&SIL_temp_conditional___33); [line 33]\n *&SIL_temp_conditional___33:int =1 [line 33]\n APPLY_ABSTRACTION; [line 33]\n " shape="box"] 37 -> 33 ; -36 [label="36: ConditinalStmt Branch \n n$14=*&b:int [line 29]\n DECLARE_LOCALS(&SIL_temp_conditional___33); [line 29]\n *&SIL_temp_conditional___33:int =n$14 [line 29]\n REMOVE_TEMPS(n$14); [line 29]\n NULLIFY(&b,false); [line 29]\n APPLY_ABSTRACTION; [line 29]\n " shape="box"] +36 [label="36: ConditinalStmt Branch \n n$14=*&b:int [line 33]\n DECLARE_LOCALS(&SIL_temp_conditional___33); [line 33]\n *&SIL_temp_conditional___33:int =n$14 [line 33]\n REMOVE_TEMPS(n$14); [line 33]\n NULLIFY(&b,false); [line 33]\n APPLY_ABSTRACTION; [line 33]\n " shape="box"] 36 -> 33 ; -35 [label="35: Prune (false branch) \n n$13=*&b:int [line 29]\n PRUNE((n$13 == 0), false); [line 29]\n REMOVE_TEMPS(n$13); [line 29]\n " shape="invhouse"] +35 [label="35: Prune (false branch) \n n$13=*&b:int [line 33]\n PRUNE((n$13 == 0), false); [line 33]\n REMOVE_TEMPS(n$13); [line 33]\n " shape="invhouse"] 35 -> 37 ; -34 [label="34: Prune (true branch) \n n$13=*&b:int [line 29]\n PRUNE((n$13 != 0), true); [line 29]\n REMOVE_TEMPS(n$13); [line 29]\n " shape="invhouse"] +34 [label="34: Prune (true branch) \n n$13=*&b:int [line 33]\n PRUNE((n$13 != 0), true); [line 33]\n REMOVE_TEMPS(n$13); [line 33]\n " shape="invhouse"] 34 -> 36 ; @@ -87,31 +87,31 @@ digraph iCFG { 33 -> 32 ; -32 [label="32: Return Stmt \n n$15=*&SIL_temp_conditional___33:int [line 29]\n NULLIFY(&SIL_temp_conditional___33,true); [line 29]\n n$16=_fun_test2(n$15:int ) [line 29]\n *&return:int =n$16 [line 29]\n REMOVE_TEMPS(n$15,n$16); [line 29]\n APPLY_ABSTRACTION; [line 29]\n " shape="box"] +32 [label="32: Return Stmt \n n$15=*&SIL_temp_conditional___33:int [line 33]\n NULLIFY(&SIL_temp_conditional___33,true); [line 33]\n n$16=_fun_test2(n$15:int ) [line 33]\n *&return:int =n$16 [line 33]\n REMOVE_TEMPS(n$15,n$16); [line 33]\n APPLY_ABSTRACTION; [line 33]\n " shape="box"] 32 -> 31 ; 31 [label="31: Exit test4 \n " color=yellow style=filled] -30 [label="30: Start test4\nFormals: b:int \nLocals: \n DECLARE_LOCALS(&return); [line 28]\n " color=yellow style=filled] +30 [label="30: Start test4\nFormals: b:int \nLocals: \n DECLARE_LOCALS(&return); [line 32]\n " color=yellow style=filled] 30 -> 34 ; 30 -> 35 ; -29 [label="29: ConditinalStmt Branch \n NULLIFY(&b,false); [line 23]\n DECLARE_LOCALS(&SIL_temp_conditional___25); [line 23]\n *&SIL_temp_conditional___25:int =1 [line 23]\n APPLY_ABSTRACTION; [line 23]\n " shape="box"] +29 [label="29: ConditinalStmt Branch \n NULLIFY(&b,false); [line 27]\n DECLARE_LOCALS(&SIL_temp_conditional___25); [line 27]\n *&SIL_temp_conditional___25:int =1 [line 27]\n APPLY_ABSTRACTION; [line 27]\n " shape="box"] 29 -> 25 ; -28 [label="28: ConditinalStmt Branch \n n$11=*&b:int [line 23]\n DECLARE_LOCALS(&SIL_temp_conditional___25); [line 23]\n *&SIL_temp_conditional___25:int =n$11 [line 23]\n REMOVE_TEMPS(n$11); [line 23]\n NULLIFY(&b,false); [line 23]\n APPLY_ABSTRACTION; [line 23]\n " shape="box"] +28 [label="28: ConditinalStmt Branch \n n$11=*&b:int [line 27]\n DECLARE_LOCALS(&SIL_temp_conditional___25); [line 27]\n *&SIL_temp_conditional___25:int =n$11 [line 27]\n REMOVE_TEMPS(n$11); [line 27]\n NULLIFY(&b,false); [line 27]\n APPLY_ABSTRACTION; [line 27]\n " shape="box"] 28 -> 25 ; -27 [label="27: Prune (false branch) \n n$10=*&b:int [line 23]\n PRUNE((n$10 == 0), false); [line 23]\n REMOVE_TEMPS(n$10); [line 23]\n " shape="invhouse"] +27 [label="27: Prune (false branch) \n n$10=*&b:int [line 27]\n PRUNE((n$10 == 0), false); [line 27]\n REMOVE_TEMPS(n$10); [line 27]\n " shape="invhouse"] 27 -> 29 ; -26 [label="26: Prune (true branch) \n n$10=*&b:int [line 23]\n PRUNE((n$10 != 0), true); [line 23]\n REMOVE_TEMPS(n$10); [line 23]\n " shape="invhouse"] +26 [label="26: Prune (true branch) \n n$10=*&b:int [line 27]\n PRUNE((n$10 != 0), true); [line 27]\n REMOVE_TEMPS(n$10); [line 27]\n " shape="invhouse"] 26 -> 28 ; @@ -119,35 +119,35 @@ digraph iCFG { 25 -> 24 ; -24 [label="24: DeclStmt \n n$12=*&SIL_temp_conditional___25:int [line 23]\n NULLIFY(&SIL_temp_conditional___25,true); [line 23]\n *&x:int =n$12 [line 23]\n REMOVE_TEMPS(n$12); [line 23]\n " shape="box"] +24 [label="24: DeclStmt \n n$12=*&SIL_temp_conditional___25:int [line 27]\n NULLIFY(&SIL_temp_conditional___25,true); [line 27]\n *&x:int =n$12 [line 27]\n REMOVE_TEMPS(n$12); [line 27]\n " shape="box"] 24 -> 23 ; -23 [label="23: Return Stmt \n n$9=*&x:int [line 24]\n *&return:int =n$9 [line 24]\n REMOVE_TEMPS(n$9); [line 24]\n NULLIFY(&x,false); [line 24]\n APPLY_ABSTRACTION; [line 24]\n " shape="box"] +23 [label="23: Return Stmt \n n$9=*&x:int [line 28]\n *&return:int =n$9 [line 28]\n REMOVE_TEMPS(n$9); [line 28]\n NULLIFY(&x,false); [line 28]\n APPLY_ABSTRACTION; [line 28]\n " shape="box"] 23 -> 22 ; 22 [label="22: Exit test3 \n " color=yellow style=filled] -21 [label="21: Start test3\nFormals: b:int \nLocals: x:int \n DECLARE_LOCALS(&return,&x); [line 22]\n NULLIFY(&x,false); [line 22]\n " color=yellow style=filled] +21 [label="21: Start test3\nFormals: b:int \nLocals: x:int \n DECLARE_LOCALS(&return,&x); [line 26]\n NULLIFY(&x,false); [line 26]\n " color=yellow style=filled] 21 -> 26 ; 21 -> 27 ; -20 [label="20: ConditinalStmt Branch \n NULLIFY(&b,false); [line 18]\n DECLARE_LOCALS(&SIL_temp_conditional___16); [line 18]\n *&SIL_temp_conditional___16:int =1 [line 18]\n APPLY_ABSTRACTION; [line 18]\n " shape="box"] +20 [label="20: ConditinalStmt Branch \n NULLIFY(&b,false); [line 22]\n DECLARE_LOCALS(&SIL_temp_conditional___16); [line 22]\n *&SIL_temp_conditional___16:int =1 [line 22]\n APPLY_ABSTRACTION; [line 22]\n " shape="box"] 20 -> 16 ; -19 [label="19: ConditinalStmt Branch \n n$7=*&b:int [line 18]\n DECLARE_LOCALS(&SIL_temp_conditional___16); [line 18]\n *&SIL_temp_conditional___16:int =n$7 [line 18]\n REMOVE_TEMPS(n$7); [line 18]\n NULLIFY(&b,false); [line 18]\n APPLY_ABSTRACTION; [line 18]\n " shape="box"] +19 [label="19: ConditinalStmt Branch \n n$7=*&b:int [line 22]\n DECLARE_LOCALS(&SIL_temp_conditional___16); [line 22]\n *&SIL_temp_conditional___16:int =n$7 [line 22]\n REMOVE_TEMPS(n$7); [line 22]\n NULLIFY(&b,false); [line 22]\n APPLY_ABSTRACTION; [line 22]\n " shape="box"] 19 -> 16 ; -18 [label="18: Prune (false branch) \n n$6=*&b:int [line 18]\n PRUNE((n$6 == 0), false); [line 18]\n REMOVE_TEMPS(n$6); [line 18]\n " shape="invhouse"] +18 [label="18: Prune (false branch) \n n$6=*&b:int [line 22]\n PRUNE((n$6 == 0), false); [line 22]\n REMOVE_TEMPS(n$6); [line 22]\n " shape="invhouse"] 18 -> 20 ; -17 [label="17: Prune (true branch) \n n$6=*&b:int [line 18]\n PRUNE((n$6 != 0), true); [line 18]\n REMOVE_TEMPS(n$6); [line 18]\n " shape="invhouse"] +17 [label="17: Prune (true branch) \n n$6=*&b:int [line 22]\n PRUNE((n$6 != 0), true); [line 22]\n REMOVE_TEMPS(n$6); [line 22]\n " shape="invhouse"] 17 -> 19 ; @@ -155,35 +155,35 @@ digraph iCFG { 16 -> 15 ; -15 [label="15: DeclStmt \n n$8=*&SIL_temp_conditional___16:int [line 18]\n NULLIFY(&SIL_temp_conditional___16,true); [line 18]\n *&x:int =n$8 [line 18]\n REMOVE_TEMPS(n$8); [line 18]\n " shape="box"] +15 [label="15: DeclStmt \n n$8=*&SIL_temp_conditional___16:int [line 22]\n NULLIFY(&SIL_temp_conditional___16,true); [line 22]\n *&x:int =n$8 [line 22]\n REMOVE_TEMPS(n$8); [line 22]\n " shape="box"] 15 -> 14 ; -14 [label="14: Return Stmt \n n$5=*&x:int [line 19]\n *&return:int =n$5 [line 19]\n REMOVE_TEMPS(n$5); [line 19]\n NULLIFY(&x,false); [line 19]\n APPLY_ABSTRACTION; [line 19]\n " shape="box"] +14 [label="14: Return Stmt \n n$5=*&x:int [line 23]\n *&return:int =n$5 [line 23]\n REMOVE_TEMPS(n$5); [line 23]\n NULLIFY(&x,false); [line 23]\n APPLY_ABSTRACTION; [line 23]\n " shape="box"] 14 -> 13 ; 13 [label="13: Exit test1 \n " color=yellow style=filled] -12 [label="12: Start test1\nFormals: b:int \nLocals: x:int \n DECLARE_LOCALS(&return,&x); [line 17]\n NULLIFY(&x,false); [line 17]\n " color=yellow style=filled] +12 [label="12: Start test1\nFormals: b:int \nLocals: x:int \n DECLARE_LOCALS(&return,&x); [line 21]\n NULLIFY(&x,false); [line 21]\n " color=yellow style=filled] 12 -> 17 ; 12 -> 18 ; -11 [label="11: ConditinalStmt Branch \n NULLIFY(&b,false); [line 14]\n DECLARE_LOCALS(&SIL_temp_conditional___7); [line 14]\n *&SIL_temp_conditional___7:int =1 [line 14]\n APPLY_ABSTRACTION; [line 14]\n " shape="box"] +11 [label="11: ConditinalStmt Branch \n NULLIFY(&b,false); [line 18]\n DECLARE_LOCALS(&SIL_temp_conditional___7); [line 18]\n *&SIL_temp_conditional___7:int =1 [line 18]\n APPLY_ABSTRACTION; [line 18]\n " shape="box"] 11 -> 7 ; -10 [label="10: ConditinalStmt Branch \n n$2=*&b:int [line 14]\n DECLARE_LOCALS(&SIL_temp_conditional___7); [line 14]\n *&SIL_temp_conditional___7:int =n$2 [line 14]\n REMOVE_TEMPS(n$2); [line 14]\n NULLIFY(&b,false); [line 14]\n APPLY_ABSTRACTION; [line 14]\n " shape="box"] +10 [label="10: ConditinalStmt Branch \n n$2=*&b:int [line 18]\n DECLARE_LOCALS(&SIL_temp_conditional___7); [line 18]\n *&SIL_temp_conditional___7:int =n$2 [line 18]\n REMOVE_TEMPS(n$2); [line 18]\n NULLIFY(&b,false); [line 18]\n APPLY_ABSTRACTION; [line 18]\n " shape="box"] 10 -> 7 ; -9 [label="9: Prune (false branch) \n n$1=*&b:int [line 14]\n PRUNE((n$1 == 0), false); [line 14]\n REMOVE_TEMPS(n$1); [line 14]\n " shape="invhouse"] +9 [label="9: Prune (false branch) \n n$1=*&b:int [line 18]\n PRUNE((n$1 == 0), false); [line 18]\n REMOVE_TEMPS(n$1); [line 18]\n " shape="invhouse"] 9 -> 11 ; -8 [label="8: Prune (true branch) \n n$1=*&b:int [line 14]\n PRUNE((n$1 != 0), true); [line 14]\n REMOVE_TEMPS(n$1); [line 14]\n " shape="invhouse"] +8 [label="8: Prune (true branch) \n n$1=*&b:int [line 18]\n PRUNE((n$1 != 0), true); [line 18]\n REMOVE_TEMPS(n$1); [line 18]\n " shape="invhouse"] 8 -> 10 ; @@ -191,26 +191,26 @@ digraph iCFG { 7 -> 6 ; -6 [label="6: Return Stmt \n n$3=*&SIL_temp_conditional___7:int [line 14]\n NULLIFY(&SIL_temp_conditional___7,true); [line 14]\n n$4=_fun_test2(n$3:int ) [line 14]\n *&return:int =n$4 [line 14]\n REMOVE_TEMPS(n$3,n$4); [line 14]\n APPLY_ABSTRACTION; [line 14]\n " shape="box"] +6 [label="6: Return Stmt \n n$3=*&SIL_temp_conditional___7:int [line 18]\n NULLIFY(&SIL_temp_conditional___7,true); [line 18]\n n$4=_fun_test2(n$3:int ) [line 18]\n *&return:int =n$4 [line 18]\n REMOVE_TEMPS(n$3,n$4); [line 18]\n APPLY_ABSTRACTION; [line 18]\n " shape="box"] 6 -> 5 ; 5 [label="5: Exit test \n " color=yellow style=filled] -4 [label="4: Start test\nFormals: b:int \nLocals: \n DECLARE_LOCALS(&return); [line 13]\n " color=yellow style=filled] +4 [label="4: Start test\nFormals: b:int \nLocals: \n DECLARE_LOCALS(&return); [line 17]\n " color=yellow style=filled] 4 -> 8 ; 4 -> 9 ; -3 [label="3: Return Stmt \n n$0=*&x:int [line 9]\n *&return:int =n$0 [line 9]\n REMOVE_TEMPS(n$0); [line 9]\n NULLIFY(&x,false); [line 9]\n APPLY_ABSTRACTION; [line 9]\n " shape="box"] +3 [label="3: Return Stmt \n n$0=*&x:int [line 13]\n *&return:int =n$0 [line 13]\n REMOVE_TEMPS(n$0); [line 13]\n NULLIFY(&x,false); [line 13]\n APPLY_ABSTRACTION; [line 13]\n " shape="box"] 3 -> 2 ; 2 [label="2: Exit test2 \n " color=yellow style=filled] -1 [label="1: Start test2\nFormals: x:int \nLocals: \n DECLARE_LOCALS(&return); [line 8]\n " color=yellow style=filled] +1 [label="1: Start test2\nFormals: x:int \nLocals: \n DECLARE_LOCALS(&return); [line 12]\n " color=yellow style=filled] 1 -> 3 ; diff --git a/infer/tests/codetoanalyze/c/frontend/conditional_operator/function_call.c b/infer/tests/codetoanalyze/c/frontend/conditional_operator/function_call.c index f40cc2e56..514bf3767 100644 --- a/infer/tests/codetoanalyze/c/frontend/conditional_operator/function_call.c +++ b/infer/tests/codetoanalyze/c/frontend/conditional_operator/function_call.c @@ -1,6 +1,10 @@ /* - * Copyright (c) 2013 - Facebook. - * All rights reserved. +* Copyright (c) 2013 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ void some_f(int, int, int); diff --git a/infer/tests/codetoanalyze/c/frontend/conditional_operator/function_call.dot b/infer/tests/codetoanalyze/c/frontend/conditional_operator/function_call.dot index e2f84e612..6ab255969 100644 --- a/infer/tests/codetoanalyze/c/frontend/conditional_operator/function_call.dot +++ b/infer/tests/codetoanalyze/c/frontend/conditional_operator/function_call.dot @@ -1,21 +1,21 @@ digraph iCFG { -67 [label="67: Call n$8 \n n$8=*&SIL_temp_conditional___52:_fn_ (*) [line 21]\n NULLIFY(&SIL_temp_conditional___52,true); [line 21]\n n$9=*&SIL_temp_conditional___57:int [line 21]\n NULLIFY(&SIL_temp_conditional___57,true); [line 21]\n n$10=*&SIL_temp_conditional___62:int [line 21]\n NULLIFY(&SIL_temp_conditional___62,true); [line 21]\n n$8(n$9:int ,2:int ,n$10:int ) [line 21]\n REMOVE_TEMPS(n$8,n$9,n$10); [line 21]\n APPLY_ABSTRACTION; [line 21]\n " shape="box"] +67 [label="67: Call n$8 \n n$8=*&SIL_temp_conditional___52:_fn_ (*) [line 25]\n NULLIFY(&SIL_temp_conditional___52,true); [line 25]\n n$9=*&SIL_temp_conditional___57:int [line 25]\n NULLIFY(&SIL_temp_conditional___57,true); [line 25]\n n$10=*&SIL_temp_conditional___62:int [line 25]\n NULLIFY(&SIL_temp_conditional___62,true); [line 25]\n n$8(n$9:int ,2:int ,n$10:int ) [line 25]\n REMOVE_TEMPS(n$8,n$9,n$10); [line 25]\n APPLY_ABSTRACTION; [line 25]\n " shape="box"] 67 -> 51 ; -66 [label="66: ConditinalStmt Branch \n DECLARE_LOCALS(&SIL_temp_conditional___62); [line 21]\n *&SIL_temp_conditional___62:int =3 [line 21]\n APPLY_ABSTRACTION; [line 21]\n " shape="box"] +66 [label="66: ConditinalStmt Branch \n DECLARE_LOCALS(&SIL_temp_conditional___62); [line 25]\n *&SIL_temp_conditional___62:int =3 [line 25]\n APPLY_ABSTRACTION; [line 25]\n " shape="box"] 66 -> 62 ; -65 [label="65: ConditinalStmt Branch \n DECLARE_LOCALS(&SIL_temp_conditional___62); [line 21]\n *&SIL_temp_conditional___62:int =3 [line 21]\n APPLY_ABSTRACTION; [line 21]\n " shape="box"] +65 [label="65: ConditinalStmt Branch \n DECLARE_LOCALS(&SIL_temp_conditional___62); [line 25]\n *&SIL_temp_conditional___62:int =3 [line 25]\n APPLY_ABSTRACTION; [line 25]\n " shape="box"] 65 -> 62 ; -64 [label="64: Prune (false branch) \n PRUNE((0 == 0), false); [line 21]\n " shape="invhouse"] +64 [label="64: Prune (false branch) \n PRUNE((0 == 0), false); [line 25]\n " shape="invhouse"] 64 -> 66 ; -63 [label="63: Prune (true branch) \n PRUNE((0 != 0), true); [line 21]\n " shape="invhouse"] +63 [label="63: Prune (true branch) \n PRUNE((0 != 0), true); [line 25]\n " shape="invhouse"] 63 -> 65 ; @@ -23,19 +23,19 @@ digraph iCFG { 62 -> 67 ; -61 [label="61: ConditinalStmt Branch \n DECLARE_LOCALS(&SIL_temp_conditional___57); [line 21]\n *&SIL_temp_conditional___57:int =1 [line 21]\n APPLY_ABSTRACTION; [line 21]\n " shape="box"] +61 [label="61: ConditinalStmt Branch \n DECLARE_LOCALS(&SIL_temp_conditional___57); [line 25]\n *&SIL_temp_conditional___57:int =1 [line 25]\n APPLY_ABSTRACTION; [line 25]\n " shape="box"] 61 -> 57 ; -60 [label="60: ConditinalStmt Branch \n DECLARE_LOCALS(&SIL_temp_conditional___57); [line 21]\n *&SIL_temp_conditional___57:int =1 [line 21]\n APPLY_ABSTRACTION; [line 21]\n " shape="box"] +60 [label="60: ConditinalStmt Branch \n DECLARE_LOCALS(&SIL_temp_conditional___57); [line 25]\n *&SIL_temp_conditional___57:int =1 [line 25]\n APPLY_ABSTRACTION; [line 25]\n " shape="box"] 60 -> 57 ; -59 [label="59: Prune (false branch) \n PRUNE((0 == 0), false); [line 21]\n " shape="invhouse"] +59 [label="59: Prune (false branch) \n PRUNE((0 == 0), false); [line 25]\n " shape="invhouse"] 59 -> 61 ; -58 [label="58: Prune (true branch) \n PRUNE((0 != 0), true); [line 21]\n " shape="invhouse"] +58 [label="58: Prune (true branch) \n PRUNE((0 != 0), true); [line 25]\n " shape="invhouse"] 58 -> 60 ; @@ -44,19 +44,19 @@ digraph iCFG { 57 -> 63 ; 57 -> 64 ; -56 [label="56: ConditinalStmt Branch \n DECLARE_LOCALS(&SIL_temp_conditional___52); [line 21]\n *&SIL_temp_conditional___52:_fn_ (*)=_fun_some_f [line 21]\n APPLY_ABSTRACTION; [line 21]\n " shape="box"] +56 [label="56: ConditinalStmt Branch \n DECLARE_LOCALS(&SIL_temp_conditional___52); [line 25]\n *&SIL_temp_conditional___52:_fn_ (*)=_fun_some_f [line 25]\n APPLY_ABSTRACTION; [line 25]\n " shape="box"] 56 -> 52 ; -55 [label="55: ConditinalStmt Branch \n DECLARE_LOCALS(&SIL_temp_conditional___52); [line 21]\n *&SIL_temp_conditional___52:_fn_ (*)=_fun_some_f [line 21]\n APPLY_ABSTRACTION; [line 21]\n " shape="box"] +55 [label="55: ConditinalStmt Branch \n DECLARE_LOCALS(&SIL_temp_conditional___52); [line 25]\n *&SIL_temp_conditional___52:_fn_ (*)=_fun_some_f [line 25]\n APPLY_ABSTRACTION; [line 25]\n " shape="box"] 55 -> 52 ; -54 [label="54: Prune (false branch) \n PRUNE((1 == 0), false); [line 21]\n " shape="invhouse"] +54 [label="54: Prune (false branch) \n PRUNE((1 == 0), false); [line 25]\n " shape="invhouse"] 54 -> 56 ; -53 [label="53: Prune (true branch) \n PRUNE((1 != 0), true); [line 21]\n " shape="invhouse"] +53 [label="53: Prune (true branch) \n PRUNE((1 != 0), true); [line 25]\n " shape="invhouse"] 53 -> 55 ; @@ -68,28 +68,28 @@ digraph iCFG { 51 [label="51: Exit fun_ifthenelse4 \n " color=yellow style=filled] -50 [label="50: Start fun_ifthenelse4\nFormals: \nLocals: \n DECLARE_LOCALS(&return); [line 20]\n " color=yellow style=filled] +50 [label="50: Start fun_ifthenelse4\nFormals: \nLocals: \n DECLARE_LOCALS(&return); [line 24]\n " color=yellow style=filled] 50 -> 53 ; 50 -> 54 ; -49 [label="49: Call _fun_some_f \n n$5=*&SIL_temp_conditional___34:int [line 17]\n NULLIFY(&SIL_temp_conditional___34,true); [line 17]\n n$6=*&SIL_temp_conditional___39:int [line 17]\n NULLIFY(&SIL_temp_conditional___39,true); [line 17]\n n$7=*&SIL_temp_conditional___44:int [line 17]\n NULLIFY(&SIL_temp_conditional___44,true); [line 17]\n _fun_some_f(n$5:int ,n$6:int ,n$7:int ) [line 17]\n REMOVE_TEMPS(n$5,n$6,n$7); [line 17]\n APPLY_ABSTRACTION; [line 17]\n " shape="box"] +49 [label="49: Call _fun_some_f \n n$5=*&SIL_temp_conditional___34:int [line 21]\n NULLIFY(&SIL_temp_conditional___34,true); [line 21]\n n$6=*&SIL_temp_conditional___39:int [line 21]\n NULLIFY(&SIL_temp_conditional___39,true); [line 21]\n n$7=*&SIL_temp_conditional___44:int [line 21]\n NULLIFY(&SIL_temp_conditional___44,true); [line 21]\n _fun_some_f(n$5:int ,n$6:int ,n$7:int ) [line 21]\n REMOVE_TEMPS(n$5,n$6,n$7); [line 21]\n APPLY_ABSTRACTION; [line 21]\n " shape="box"] 49 -> 33 ; -48 [label="48: ConditinalStmt Branch \n DECLARE_LOCALS(&SIL_temp_conditional___44); [line 17]\n *&SIL_temp_conditional___44:int =3 [line 17]\n APPLY_ABSTRACTION; [line 17]\n " shape="box"] +48 [label="48: ConditinalStmt Branch \n DECLARE_LOCALS(&SIL_temp_conditional___44); [line 21]\n *&SIL_temp_conditional___44:int =3 [line 21]\n APPLY_ABSTRACTION; [line 21]\n " shape="box"] 48 -> 44 ; -47 [label="47: ConditinalStmt Branch \n DECLARE_LOCALS(&SIL_temp_conditional___44); [line 17]\n *&SIL_temp_conditional___44:int =3 [line 17]\n APPLY_ABSTRACTION; [line 17]\n " shape="box"] +47 [label="47: ConditinalStmt Branch \n DECLARE_LOCALS(&SIL_temp_conditional___44); [line 21]\n *&SIL_temp_conditional___44:int =3 [line 21]\n APPLY_ABSTRACTION; [line 21]\n " shape="box"] 47 -> 44 ; -46 [label="46: Prune (false branch) \n PRUNE((0 == 0), false); [line 17]\n " shape="invhouse"] +46 [label="46: Prune (false branch) \n PRUNE((0 == 0), false); [line 21]\n " shape="invhouse"] 46 -> 48 ; -45 [label="45: Prune (true branch) \n PRUNE((0 != 0), true); [line 17]\n " shape="invhouse"] +45 [label="45: Prune (true branch) \n PRUNE((0 != 0), true); [line 21]\n " shape="invhouse"] 45 -> 47 ; @@ -97,19 +97,19 @@ digraph iCFG { 44 -> 49 ; -43 [label="43: ConditinalStmt Branch \n DECLARE_LOCALS(&SIL_temp_conditional___39); [line 17]\n *&SIL_temp_conditional___39:int =2 [line 17]\n APPLY_ABSTRACTION; [line 17]\n " shape="box"] +43 [label="43: ConditinalStmt Branch \n DECLARE_LOCALS(&SIL_temp_conditional___39); [line 21]\n *&SIL_temp_conditional___39:int =2 [line 21]\n APPLY_ABSTRACTION; [line 21]\n " shape="box"] 43 -> 39 ; -42 [label="42: ConditinalStmt Branch \n DECLARE_LOCALS(&SIL_temp_conditional___39); [line 17]\n *&SIL_temp_conditional___39:int =2 [line 17]\n APPLY_ABSTRACTION; [line 17]\n " shape="box"] +42 [label="42: ConditinalStmt Branch \n DECLARE_LOCALS(&SIL_temp_conditional___39); [line 21]\n *&SIL_temp_conditional___39:int =2 [line 21]\n APPLY_ABSTRACTION; [line 21]\n " shape="box"] 42 -> 39 ; -41 [label="41: Prune (false branch) \n PRUNE((0 == 0), false); [line 17]\n " shape="invhouse"] +41 [label="41: Prune (false branch) \n PRUNE((0 == 0), false); [line 21]\n " shape="invhouse"] 41 -> 43 ; -40 [label="40: Prune (true branch) \n PRUNE((0 != 0), true); [line 17]\n " shape="invhouse"] +40 [label="40: Prune (true branch) \n PRUNE((0 != 0), true); [line 21]\n " shape="invhouse"] 40 -> 42 ; @@ -118,19 +118,19 @@ digraph iCFG { 39 -> 45 ; 39 -> 46 ; -38 [label="38: ConditinalStmt Branch \n DECLARE_LOCALS(&SIL_temp_conditional___34); [line 17]\n *&SIL_temp_conditional___34:int =1 [line 17]\n APPLY_ABSTRACTION; [line 17]\n " shape="box"] +38 [label="38: ConditinalStmt Branch \n DECLARE_LOCALS(&SIL_temp_conditional___34); [line 21]\n *&SIL_temp_conditional___34:int =1 [line 21]\n APPLY_ABSTRACTION; [line 21]\n " shape="box"] 38 -> 34 ; -37 [label="37: ConditinalStmt Branch \n DECLARE_LOCALS(&SIL_temp_conditional___34); [line 17]\n *&SIL_temp_conditional___34:int =1 [line 17]\n APPLY_ABSTRACTION; [line 17]\n " shape="box"] +37 [label="37: ConditinalStmt Branch \n DECLARE_LOCALS(&SIL_temp_conditional___34); [line 21]\n *&SIL_temp_conditional___34:int =1 [line 21]\n APPLY_ABSTRACTION; [line 21]\n " shape="box"] 37 -> 34 ; -36 [label="36: Prune (false branch) \n PRUNE((0 == 0), false); [line 17]\n " shape="invhouse"] +36 [label="36: Prune (false branch) \n PRUNE((0 == 0), false); [line 21]\n " shape="invhouse"] 36 -> 38 ; -35 [label="35: Prune (true branch) \n PRUNE((0 != 0), true); [line 17]\n " shape="invhouse"] +35 [label="35: Prune (true branch) \n PRUNE((0 != 0), true); [line 21]\n " shape="invhouse"] 35 -> 37 ; @@ -142,28 +142,28 @@ digraph iCFG { 33 [label="33: Exit fun_ifthenelse3 \n " color=yellow style=filled] -32 [label="32: Start fun_ifthenelse3\nFormals: \nLocals: \n DECLARE_LOCALS(&return); [line 16]\n " color=yellow style=filled] +32 [label="32: Start fun_ifthenelse3\nFormals: \nLocals: \n DECLARE_LOCALS(&return); [line 20]\n " color=yellow style=filled] 32 -> 35 ; 32 -> 36 ; -31 [label="31: Call n$1 \n n$1=*&SIL_temp_conditional___11:_fn_ (*) [line 13]\n NULLIFY(&SIL_temp_conditional___11,true); [line 13]\n n$2=*&SIL_temp_conditional___16:int [line 13]\n NULLIFY(&SIL_temp_conditional___16,true); [line 13]\n n$3=*&SIL_temp_conditional___21:int [line 13]\n NULLIFY(&SIL_temp_conditional___21,true); [line 13]\n n$4=*&SIL_temp_conditional___26:int [line 13]\n NULLIFY(&SIL_temp_conditional___26,true); [line 13]\n n$1(n$2:int ,n$3:int ,n$4:int ) [line 13]\n REMOVE_TEMPS(n$1,n$2,n$3,n$4); [line 13]\n APPLY_ABSTRACTION; [line 13]\n " shape="box"] +31 [label="31: Call n$1 \n n$1=*&SIL_temp_conditional___11:_fn_ (*) [line 17]\n NULLIFY(&SIL_temp_conditional___11,true); [line 17]\n n$2=*&SIL_temp_conditional___16:int [line 17]\n NULLIFY(&SIL_temp_conditional___16,true); [line 17]\n n$3=*&SIL_temp_conditional___21:int [line 17]\n NULLIFY(&SIL_temp_conditional___21,true); [line 17]\n n$4=*&SIL_temp_conditional___26:int [line 17]\n NULLIFY(&SIL_temp_conditional___26,true); [line 17]\n n$1(n$2:int ,n$3:int ,n$4:int ) [line 17]\n REMOVE_TEMPS(n$1,n$2,n$3,n$4); [line 17]\n APPLY_ABSTRACTION; [line 17]\n " shape="box"] 31 -> 10 ; -30 [label="30: ConditinalStmt Branch \n DECLARE_LOCALS(&SIL_temp_conditional___26); [line 13]\n *&SIL_temp_conditional___26:int =3 [line 13]\n APPLY_ABSTRACTION; [line 13]\n " shape="box"] +30 [label="30: ConditinalStmt Branch \n DECLARE_LOCALS(&SIL_temp_conditional___26); [line 17]\n *&SIL_temp_conditional___26:int =3 [line 17]\n APPLY_ABSTRACTION; [line 17]\n " shape="box"] 30 -> 26 ; -29 [label="29: ConditinalStmt Branch \n DECLARE_LOCALS(&SIL_temp_conditional___26); [line 13]\n *&SIL_temp_conditional___26:int =3 [line 13]\n APPLY_ABSTRACTION; [line 13]\n " shape="box"] +29 [label="29: ConditinalStmt Branch \n DECLARE_LOCALS(&SIL_temp_conditional___26); [line 17]\n *&SIL_temp_conditional___26:int =3 [line 17]\n APPLY_ABSTRACTION; [line 17]\n " shape="box"] 29 -> 26 ; -28 [label="28: Prune (false branch) \n PRUNE((0 == 0), false); [line 13]\n " shape="invhouse"] +28 [label="28: Prune (false branch) \n PRUNE((0 == 0), false); [line 17]\n " shape="invhouse"] 28 -> 30 ; -27 [label="27: Prune (true branch) \n PRUNE((0 != 0), true); [line 13]\n " shape="invhouse"] +27 [label="27: Prune (true branch) \n PRUNE((0 != 0), true); [line 17]\n " shape="invhouse"] 27 -> 29 ; @@ -171,19 +171,19 @@ digraph iCFG { 26 -> 31 ; -25 [label="25: ConditinalStmt Branch \n DECLARE_LOCALS(&SIL_temp_conditional___21); [line 13]\n *&SIL_temp_conditional___21:int =2 [line 13]\n APPLY_ABSTRACTION; [line 13]\n " shape="box"] +25 [label="25: ConditinalStmt Branch \n DECLARE_LOCALS(&SIL_temp_conditional___21); [line 17]\n *&SIL_temp_conditional___21:int =2 [line 17]\n APPLY_ABSTRACTION; [line 17]\n " shape="box"] 25 -> 21 ; -24 [label="24: ConditinalStmt Branch \n DECLARE_LOCALS(&SIL_temp_conditional___21); [line 13]\n *&SIL_temp_conditional___21:int =2 [line 13]\n APPLY_ABSTRACTION; [line 13]\n " shape="box"] +24 [label="24: ConditinalStmt Branch \n DECLARE_LOCALS(&SIL_temp_conditional___21); [line 17]\n *&SIL_temp_conditional___21:int =2 [line 17]\n APPLY_ABSTRACTION; [line 17]\n " shape="box"] 24 -> 21 ; -23 [label="23: Prune (false branch) \n PRUNE((0 == 0), false); [line 13]\n " shape="invhouse"] +23 [label="23: Prune (false branch) \n PRUNE((0 == 0), false); [line 17]\n " shape="invhouse"] 23 -> 25 ; -22 [label="22: Prune (true branch) \n PRUNE((0 != 0), true); [line 13]\n " shape="invhouse"] +22 [label="22: Prune (true branch) \n PRUNE((0 != 0), true); [line 17]\n " shape="invhouse"] 22 -> 24 ; @@ -192,19 +192,19 @@ digraph iCFG { 21 -> 27 ; 21 -> 28 ; -20 [label="20: ConditinalStmt Branch \n DECLARE_LOCALS(&SIL_temp_conditional___16); [line 13]\n *&SIL_temp_conditional___16:int =1 [line 13]\n APPLY_ABSTRACTION; [line 13]\n " shape="box"] +20 [label="20: ConditinalStmt Branch \n DECLARE_LOCALS(&SIL_temp_conditional___16); [line 17]\n *&SIL_temp_conditional___16:int =1 [line 17]\n APPLY_ABSTRACTION; [line 17]\n " shape="box"] 20 -> 16 ; -19 [label="19: ConditinalStmt Branch \n DECLARE_LOCALS(&SIL_temp_conditional___16); [line 13]\n *&SIL_temp_conditional___16:int =1 [line 13]\n APPLY_ABSTRACTION; [line 13]\n " shape="box"] +19 [label="19: ConditinalStmt Branch \n DECLARE_LOCALS(&SIL_temp_conditional___16); [line 17]\n *&SIL_temp_conditional___16:int =1 [line 17]\n APPLY_ABSTRACTION; [line 17]\n " shape="box"] 19 -> 16 ; -18 [label="18: Prune (false branch) \n PRUNE((0 == 0), false); [line 13]\n " shape="invhouse"] +18 [label="18: Prune (false branch) \n PRUNE((0 == 0), false); [line 17]\n " shape="invhouse"] 18 -> 20 ; -17 [label="17: Prune (true branch) \n PRUNE((0 != 0), true); [line 13]\n " shape="invhouse"] +17 [label="17: Prune (true branch) \n PRUNE((0 != 0), true); [line 17]\n " shape="invhouse"] 17 -> 19 ; @@ -213,19 +213,19 @@ digraph iCFG { 16 -> 22 ; 16 -> 23 ; -15 [label="15: ConditinalStmt Branch \n DECLARE_LOCALS(&SIL_temp_conditional___11); [line 13]\n *&SIL_temp_conditional___11:_fn_ (*)=_fun_some_f [line 13]\n APPLY_ABSTRACTION; [line 13]\n " shape="box"] +15 [label="15: ConditinalStmt Branch \n DECLARE_LOCALS(&SIL_temp_conditional___11); [line 17]\n *&SIL_temp_conditional___11:_fn_ (*)=_fun_some_f [line 17]\n APPLY_ABSTRACTION; [line 17]\n " shape="box"] 15 -> 11 ; -14 [label="14: ConditinalStmt Branch \n DECLARE_LOCALS(&SIL_temp_conditional___11); [line 13]\n *&SIL_temp_conditional___11:_fn_ (*)=_fun_some_f [line 13]\n APPLY_ABSTRACTION; [line 13]\n " shape="box"] +14 [label="14: ConditinalStmt Branch \n DECLARE_LOCALS(&SIL_temp_conditional___11); [line 17]\n *&SIL_temp_conditional___11:_fn_ (*)=_fun_some_f [line 17]\n APPLY_ABSTRACTION; [line 17]\n " shape="box"] 14 -> 11 ; -13 [label="13: Prune (false branch) \n PRUNE((1 == 0), false); [line 13]\n " shape="invhouse"] +13 [label="13: Prune (false branch) \n PRUNE((1 == 0), false); [line 17]\n " shape="invhouse"] 13 -> 15 ; -12 [label="12: Prune (true branch) \n PRUNE((1 != 0), true); [line 13]\n " shape="invhouse"] +12 [label="12: Prune (true branch) \n PRUNE((1 != 0), true); [line 17]\n " shape="invhouse"] 12 -> 14 ; @@ -237,28 +237,28 @@ digraph iCFG { 10 [label="10: Exit fun_ifthenelse2 \n " color=yellow style=filled] -9 [label="9: Start fun_ifthenelse2\nFormals: \nLocals: \n DECLARE_LOCALS(&return); [line 12]\n " color=yellow style=filled] +9 [label="9: Start fun_ifthenelse2\nFormals: \nLocals: \n DECLARE_LOCALS(&return); [line 16]\n " color=yellow style=filled] 9 -> 12 ; 9 -> 13 ; -8 [label="8: Call n$0 \n n$0=*&SIL_temp_conditional___3:_fn_ (*) [line 9]\n NULLIFY(&SIL_temp_conditional___3,true); [line 9]\n n$0(1:int ,2:int ,3:int ) [line 9]\n REMOVE_TEMPS(n$0); [line 9]\n APPLY_ABSTRACTION; [line 9]\n " shape="box"] +8 [label="8: Call n$0 \n n$0=*&SIL_temp_conditional___3:_fn_ (*) [line 13]\n NULLIFY(&SIL_temp_conditional___3,true); [line 13]\n n$0(1:int ,2:int ,3:int ) [line 13]\n REMOVE_TEMPS(n$0); [line 13]\n APPLY_ABSTRACTION; [line 13]\n " shape="box"] 8 -> 2 ; -7 [label="7: ConditinalStmt Branch \n DECLARE_LOCALS(&SIL_temp_conditional___3); [line 9]\n *&SIL_temp_conditional___3:_fn_ (*)=_fun_some_f [line 9]\n APPLY_ABSTRACTION; [line 9]\n " shape="box"] +7 [label="7: ConditinalStmt Branch \n DECLARE_LOCALS(&SIL_temp_conditional___3); [line 13]\n *&SIL_temp_conditional___3:_fn_ (*)=_fun_some_f [line 13]\n APPLY_ABSTRACTION; [line 13]\n " shape="box"] 7 -> 3 ; -6 [label="6: ConditinalStmt Branch \n DECLARE_LOCALS(&SIL_temp_conditional___3); [line 9]\n *&SIL_temp_conditional___3:_fn_ (*)=_fun_some_f [line 9]\n APPLY_ABSTRACTION; [line 9]\n " shape="box"] +6 [label="6: ConditinalStmt Branch \n DECLARE_LOCALS(&SIL_temp_conditional___3); [line 13]\n *&SIL_temp_conditional___3:_fn_ (*)=_fun_some_f [line 13]\n APPLY_ABSTRACTION; [line 13]\n " shape="box"] 6 -> 3 ; -5 [label="5: Prune (false branch) \n PRUNE((1 == 0), false); [line 9]\n " shape="invhouse"] +5 [label="5: Prune (false branch) \n PRUNE((1 == 0), false); [line 13]\n " shape="invhouse"] 5 -> 7 ; -4 [label="4: Prune (true branch) \n PRUNE((1 != 0), true); [line 9]\n " shape="invhouse"] +4 [label="4: Prune (true branch) \n PRUNE((1 != 0), true); [line 13]\n " shape="invhouse"] 4 -> 6 ; @@ -269,7 +269,7 @@ digraph iCFG { 2 [label="2: Exit fun_ifthenelse1 \n " color=yellow style=filled] -1 [label="1: Start fun_ifthenelse1\nFormals: \nLocals: \n DECLARE_LOCALS(&return); [line 8]\n " color=yellow style=filled] +1 [label="1: Start fun_ifthenelse1\nFormals: \nLocals: \n DECLARE_LOCALS(&return); [line 12]\n " color=yellow style=filled] 1 -> 4 ; diff --git a/infer/tests/codetoanalyze/c/frontend/conditional_operator/if_short_circuit.c b/infer/tests/codetoanalyze/c/frontend/conditional_operator/if_short_circuit.c index ff9c71dde..75288ff30 100644 --- a/infer/tests/codetoanalyze/c/frontend/conditional_operator/if_short_circuit.c +++ b/infer/tests/codetoanalyze/c/frontend/conditional_operator/if_short_circuit.c @@ -1,6 +1,10 @@ /* - * Copyright (c) 2013 - Facebook. - * All rights reserved. +* Copyright (c) 2013 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ #include diff --git a/infer/tests/codetoanalyze/c/frontend/conditional_operator/if_short_circuit.dot b/infer/tests/codetoanalyze/c/frontend/conditional_operator/if_short_circuit.dot index c2650da71..d2959f37c 100644 --- a/infer/tests/codetoanalyze/c/frontend/conditional_operator/if_short_circuit.dot +++ b/infer/tests/codetoanalyze/c/frontend/conditional_operator/if_short_circuit.dot @@ -1,22 +1,22 @@ digraph iCFG { -93 [label="93: BinaryOperatorStmt: Assign \n n$28=_fun_getenv(\"BLOCK\":char *) [line 47]\n *&spec:char *=n$28 [line 47]\n REMOVE_TEMPS(n$28); [line 47]\n " shape="box"] +93 [label="93: BinaryOperatorStmt: Assign \n n$28=_fun_getenv(\"BLOCK\":char *) [line 51]\n *&spec:char *=n$28 [line 51]\n REMOVE_TEMPS(n$28); [line 51]\n " shape="box"] 93 -> 65 ; 93 -> 66 ; -92 [label="92: BinaryOperatorStmt: Assign \n *&block_size:char *=0 [line 58]\n NULLIFY(&block_size,false); [line 58]\n APPLY_ABSTRACTION; [line 58]\n " shape="box"] +92 [label="92: BinaryOperatorStmt: Assign \n *&block_size:char *=0 [line 62]\n NULLIFY(&block_size,false); [line 62]\n APPLY_ABSTRACTION; [line 62]\n " shape="box"] 92 -> 88 ; -91 [label="91: Prune (false branch) \n PRUNE(((n$27 == 39) == 0), false); [line 57]\n REMOVE_TEMPS(n$26,n$27); [line 57]\n APPLY_ABSTRACTION; [line 57]\n " shape="invhouse"] +91 [label="91: Prune (false branch) \n PRUNE(((n$27 == 39) == 0), false); [line 61]\n REMOVE_TEMPS(n$26,n$27); [line 61]\n APPLY_ABSTRACTION; [line 61]\n " shape="invhouse"] 91 -> 88 ; -90 [label="90: Prune (true branch) \n PRUNE(((n$27 == 39) != 0), true); [line 57]\n REMOVE_TEMPS(n$26,n$27); [line 57]\n " shape="invhouse"] +90 [label="90: Prune (true branch) \n PRUNE(((n$27 == 39) != 0), true); [line 61]\n REMOVE_TEMPS(n$26,n$27); [line 61]\n " shape="invhouse"] 90 -> 92 ; -89 [label="89: BinaryOperatorStmt: EQ \n n$26=*&spec:char * [line 57]\n n$27=*n$26:char [line 57]\n NULLIFY(&spec,false); [line 57]\n " shape="box"] +89 [label="89: BinaryOperatorStmt: EQ \n n$26=*&spec:char * [line 61]\n n$27=*n$26:char [line 61]\n NULLIFY(&spec,false); [line 61]\n " shape="box"] 89 -> 90 ; @@ -25,35 +25,35 @@ digraph iCFG { 88 -> 63 ; -87 [label="87: BinaryOperatorStmt: Assign \n *&block_size:char *=0 [line 54]\n NULLIFY(&block_size,false); [line 54]\n APPLY_ABSTRACTION; [line 54]\n " shape="box"] +87 [label="87: BinaryOperatorStmt: Assign \n *&block_size:char *=0 [line 58]\n NULLIFY(&block_size,false); [line 58]\n APPLY_ABSTRACTION; [line 58]\n " shape="box"] 87 -> 63 ; -86 [label="86: Prune (false branch) \n n$25=*&SIL_temp_conditional___79:int [line 53]\n NULLIFY(&SIL_temp_conditional___79,true); [line 53]\n PRUNE((n$25 == 0), false); [line 53]\n REMOVE_TEMPS(n$25); [line 53]\n APPLY_ABSTRACTION; [line 53]\n " shape="invhouse"] +86 [label="86: Prune (false branch) \n n$25=*&SIL_temp_conditional___79:int [line 57]\n NULLIFY(&SIL_temp_conditional___79,true); [line 57]\n PRUNE((n$25 == 0), false); [line 57]\n REMOVE_TEMPS(n$25); [line 57]\n APPLY_ABSTRACTION; [line 57]\n " shape="invhouse"] 86 -> 89 ; -85 [label="85: Prune (true branch) \n n$25=*&SIL_temp_conditional___79:int [line 53]\n NULLIFY(&SIL_temp_conditional___79,true); [line 53]\n PRUNE((n$25 != 0), true); [line 53]\n REMOVE_TEMPS(n$25); [line 53]\n NULLIFY(&spec,false); [line 53]\n " shape="invhouse"] +85 [label="85: Prune (true branch) \n n$25=*&SIL_temp_conditional___79:int [line 57]\n NULLIFY(&SIL_temp_conditional___79,true); [line 57]\n PRUNE((n$25 != 0), true); [line 57]\n REMOVE_TEMPS(n$25); [line 57]\n NULLIFY(&spec,false); [line 57]\n " shape="invhouse"] 85 -> 87 ; -84 [label="84: ConditinalStmt Branch \n DECLARE_LOCALS(&SIL_temp_conditional___79); [line 53]\n *&SIL_temp_conditional___79:int =1 [line 53]\n APPLY_ABSTRACTION; [line 53]\n " shape="box"] +84 [label="84: ConditinalStmt Branch \n DECLARE_LOCALS(&SIL_temp_conditional___79); [line 57]\n *&SIL_temp_conditional___79:int =1 [line 57]\n APPLY_ABSTRACTION; [line 57]\n " shape="box"] 84 -> 79 ; -83 [label="83: ConditinalStmt Branch \n DECLARE_LOCALS(&SIL_temp_conditional___79); [line 53]\n *&SIL_temp_conditional___79:int =0 [line 53]\n APPLY_ABSTRACTION; [line 53]\n " shape="box"] +83 [label="83: ConditinalStmt Branch \n DECLARE_LOCALS(&SIL_temp_conditional___79); [line 57]\n *&SIL_temp_conditional___79:int =0 [line 57]\n APPLY_ABSTRACTION; [line 57]\n " shape="box"] 83 -> 79 ; -82 [label="82: Prune (false branch) \n PRUNE((n$24 == 0), false); [line 53]\n REMOVE_TEMPS(n$23,n$24); [line 53]\n " shape="invhouse"] +82 [label="82: Prune (false branch) \n PRUNE((n$24 == 0), false); [line 57]\n REMOVE_TEMPS(n$23,n$24); [line 57]\n " shape="invhouse"] 82 -> 84 ; -81 [label="81: Prune (true branch) \n PRUNE((n$24 != 0), true); [line 53]\n REMOVE_TEMPS(n$23,n$24); [line 53]\n " shape="invhouse"] +81 [label="81: Prune (true branch) \n PRUNE((n$24 != 0), true); [line 57]\n REMOVE_TEMPS(n$23,n$24); [line 57]\n " shape="invhouse"] 81 -> 83 ; -80 [label="80: BinaryOperatorStmt: Assign \n n$23=_fun_getenv(\"BLOCKSIZE\":char *) [line 53]\n *&spec:char *=n$23 [line 53]\n n$24=*&spec:char * [line 53]\n " shape="box"] +80 [label="80: BinaryOperatorStmt: Assign \n n$23=_fun_getenv(\"BLOCKSIZE\":char *) [line 57]\n *&spec:char *=n$23 [line 57]\n n$24=*&spec:char * [line 57]\n " shape="box"] 80 -> 81 ; @@ -63,31 +63,31 @@ digraph iCFG { 79 -> 85 ; 79 -> 86 ; -78 [label="78: Prune (false branch) \n n$22=*&SIL_temp_conditional___71:int [line 52]\n NULLIFY(&SIL_temp_conditional___71,true); [line 52]\n PRUNE((n$22 == 0), false); [line 52]\n REMOVE_TEMPS(n$22); [line 52]\n APPLY_ABSTRACTION; [line 52]\n " shape="invhouse"] +78 [label="78: Prune (false branch) \n n$22=*&SIL_temp_conditional___71:int [line 56]\n NULLIFY(&SIL_temp_conditional___71,true); [line 56]\n PRUNE((n$22 == 0), false); [line 56]\n REMOVE_TEMPS(n$22); [line 56]\n APPLY_ABSTRACTION; [line 56]\n " shape="invhouse"] 78 -> 89 ; -77 [label="77: Prune (true branch) \n n$22=*&SIL_temp_conditional___71:int [line 52]\n NULLIFY(&SIL_temp_conditional___71,true); [line 52]\n PRUNE((n$22 != 0), true); [line 52]\n REMOVE_TEMPS(n$22); [line 52]\n NULLIFY(&spec,false); [line 52]\n " shape="invhouse"] +77 [label="77: Prune (true branch) \n n$22=*&SIL_temp_conditional___71:int [line 56]\n NULLIFY(&SIL_temp_conditional___71,true); [line 56]\n PRUNE((n$22 != 0), true); [line 56]\n REMOVE_TEMPS(n$22); [line 56]\n NULLIFY(&spec,false); [line 56]\n " shape="invhouse"] 77 -> 80 ; -76 [label="76: ConditinalStmt Branch \n DECLARE_LOCALS(&SIL_temp_conditional___71); [line 52]\n *&SIL_temp_conditional___71:int =1 [line 52]\n APPLY_ABSTRACTION; [line 52]\n " shape="box"] +76 [label="76: ConditinalStmt Branch \n DECLARE_LOCALS(&SIL_temp_conditional___71); [line 56]\n *&SIL_temp_conditional___71:int =1 [line 56]\n APPLY_ABSTRACTION; [line 56]\n " shape="box"] 76 -> 71 ; -75 [label="75: ConditinalStmt Branch \n DECLARE_LOCALS(&SIL_temp_conditional___71); [line 52]\n *&SIL_temp_conditional___71:int =0 [line 52]\n APPLY_ABSTRACTION; [line 52]\n " shape="box"] +75 [label="75: ConditinalStmt Branch \n DECLARE_LOCALS(&SIL_temp_conditional___71); [line 56]\n *&SIL_temp_conditional___71:int =0 [line 56]\n APPLY_ABSTRACTION; [line 56]\n " shape="box"] 75 -> 71 ; -74 [label="74: Prune (false branch) \n PRUNE((n$21 == 0), false); [line 52]\n REMOVE_TEMPS(n$20,n$21); [line 52]\n " shape="invhouse"] +74 [label="74: Prune (false branch) \n PRUNE((n$21 == 0), false); [line 56]\n REMOVE_TEMPS(n$20,n$21); [line 56]\n " shape="invhouse"] 74 -> 76 ; -73 [label="73: Prune (true branch) \n PRUNE((n$21 != 0), true); [line 52]\n REMOVE_TEMPS(n$20,n$21); [line 52]\n " shape="invhouse"] +73 [label="73: Prune (true branch) \n PRUNE((n$21 != 0), true); [line 56]\n REMOVE_TEMPS(n$20,n$21); [line 56]\n " shape="invhouse"] 73 -> 75 ; -72 [label="72: BinaryOperatorStmt: Assign \n n$20=_fun_getenv(\"BLOCK_SIZE\":char *) [line 52]\n *&spec:char *=n$20 [line 52]\n n$21=*&spec:char * [line 52]\n " shape="box"] +72 [label="72: BinaryOperatorStmt: Assign \n n$20=_fun_getenv(\"BLOCK_SIZE\":char *) [line 56]\n *&spec:char *=n$20 [line 56]\n n$21=*&spec:char * [line 56]\n " shape="box"] 72 -> 73 ; @@ -97,27 +97,27 @@ digraph iCFG { 71 -> 77 ; 71 -> 78 ; -70 [label="70: Prune (false branch) \n n$19=*&SIL_temp_conditional___64:int [line 51]\n NULLIFY(&SIL_temp_conditional___64,true); [line 51]\n PRUNE((n$19 == 0), false); [line 51]\n REMOVE_TEMPS(n$19); [line 51]\n APPLY_ABSTRACTION; [line 51]\n " shape="invhouse"] +70 [label="70: Prune (false branch) \n n$19=*&SIL_temp_conditional___64:int [line 55]\n NULLIFY(&SIL_temp_conditional___64,true); [line 55]\n PRUNE((n$19 == 0), false); [line 55]\n REMOVE_TEMPS(n$19); [line 55]\n APPLY_ABSTRACTION; [line 55]\n " shape="invhouse"] 70 -> 89 ; -69 [label="69: Prune (true branch) \n n$19=*&SIL_temp_conditional___64:int [line 51]\n NULLIFY(&SIL_temp_conditional___64,true); [line 51]\n PRUNE((n$19 != 0), true); [line 51]\n REMOVE_TEMPS(n$19); [line 51]\n NULLIFY(&spec,false); [line 51]\n " shape="invhouse"] +69 [label="69: Prune (true branch) \n n$19=*&SIL_temp_conditional___64:int [line 55]\n NULLIFY(&SIL_temp_conditional___64,true); [line 55]\n PRUNE((n$19 != 0), true); [line 55]\n REMOVE_TEMPS(n$19); [line 55]\n NULLIFY(&spec,false); [line 55]\n " shape="invhouse"] 69 -> 72 ; -68 [label="68: ConditinalStmt Branch \n DECLARE_LOCALS(&SIL_temp_conditional___64); [line 51]\n *&SIL_temp_conditional___64:int =1 [line 51]\n APPLY_ABSTRACTION; [line 51]\n " shape="box"] +68 [label="68: ConditinalStmt Branch \n DECLARE_LOCALS(&SIL_temp_conditional___64); [line 55]\n *&SIL_temp_conditional___64:int =1 [line 55]\n APPLY_ABSTRACTION; [line 55]\n " shape="box"] 68 -> 64 ; -67 [label="67: ConditinalStmt Branch \n DECLARE_LOCALS(&SIL_temp_conditional___64); [line 51]\n *&SIL_temp_conditional___64:int =0 [line 51]\n APPLY_ABSTRACTION; [line 51]\n " shape="box"] +67 [label="67: ConditinalStmt Branch \n DECLARE_LOCALS(&SIL_temp_conditional___64); [line 55]\n *&SIL_temp_conditional___64:int =0 [line 55]\n APPLY_ABSTRACTION; [line 55]\n " shape="box"] 67 -> 64 ; -66 [label="66: Prune (false branch) \n n$18=*&spec:char * [line 51]\n PRUNE((n$18 == 0), false); [line 51]\n REMOVE_TEMPS(n$18); [line 51]\n " shape="invhouse"] +66 [label="66: Prune (false branch) \n n$18=*&spec:char * [line 55]\n PRUNE((n$18 == 0), false); [line 55]\n REMOVE_TEMPS(n$18); [line 55]\n " shape="invhouse"] 66 -> 68 ; -65 [label="65: Prune (true branch) \n n$18=*&spec:char * [line 51]\n PRUNE((n$18 != 0), true); [line 51]\n REMOVE_TEMPS(n$18); [line 51]\n " shape="invhouse"] +65 [label="65: Prune (true branch) \n n$18=*&spec:char * [line 55]\n PRUNE((n$18 != 0), true); [line 55]\n REMOVE_TEMPS(n$18); [line 55]\n " shape="invhouse"] 65 -> 67 ; @@ -130,50 +130,50 @@ digraph iCFG { 63 -> 62 ; -62 [label="62: Return Stmt \n *&return:int =0 [line 61]\n APPLY_ABSTRACTION; [line 61]\n " shape="box"] +62 [label="62: Return Stmt \n *&return:int =0 [line 65]\n APPLY_ABSTRACTION; [line 65]\n " shape="box"] 62 -> 61 ; 61 [label="61: Exit main \n " color=yellow style=filled] -60 [label="60: Start main\nFormals: \nLocals: spec:char * block_size:char * \n DECLARE_LOCALS(&return,&spec,&block_size); [line 42]\n NULLIFY(&block_size,false); [line 42]\n NULLIFY(&spec,false); [line 42]\n " color=yellow style=filled] +60 [label="60: Start main\nFormals: \nLocals: spec:char * block_size:char * \n DECLARE_LOCALS(&return,&spec,&block_size); [line 46]\n NULLIFY(&block_size,false); [line 46]\n NULLIFY(&spec,false); [line 46]\n " color=yellow style=filled] 60 -> 93 ; -59 [label="59: BinaryOperatorStmt: Assign \n n$17=_fun_getenv(\"BLOCK\":char *) [line 29]\n *&spec:char *=n$17 [line 29]\n REMOVE_TEMPS(n$17); [line 29]\n APPLY_ABSTRACTION; [line 29]\n " shape="box"] +59 [label="59: BinaryOperatorStmt: Assign \n n$17=_fun_getenv(\"BLOCK\":char *) [line 33]\n *&spec:char *=n$17 [line 33]\n REMOVE_TEMPS(n$17); [line 33]\n APPLY_ABSTRACTION; [line 33]\n " shape="box"] 59 -> 34 ; -58 [label="58: BinaryOperatorStmt: Assign \n *&block_size:char *=0 [line 34]\n NULLIFY(&block_size,false); [line 34]\n APPLY_ABSTRACTION; [line 34]\n " shape="box"] +58 [label="58: BinaryOperatorStmt: Assign \n *&block_size:char *=0 [line 38]\n NULLIFY(&block_size,false); [line 38]\n APPLY_ABSTRACTION; [line 38]\n " shape="box"] 58 -> 34 ; -57 [label="57: Prune (false branch) \n n$16=*&SIL_temp_conditional___50:int [line 33]\n NULLIFY(&SIL_temp_conditional___50,true); [line 33]\n PRUNE((n$16 == 0), false); [line 33]\n REMOVE_TEMPS(n$16); [line 33]\n NULLIFY(&spec,false); [line 33]\n APPLY_ABSTRACTION; [line 33]\n " shape="invhouse"] +57 [label="57: Prune (false branch) \n n$16=*&SIL_temp_conditional___50:int [line 37]\n NULLIFY(&SIL_temp_conditional___50,true); [line 37]\n PRUNE((n$16 == 0), false); [line 37]\n REMOVE_TEMPS(n$16); [line 37]\n NULLIFY(&spec,false); [line 37]\n APPLY_ABSTRACTION; [line 37]\n " shape="invhouse"] 57 -> 33 ; -56 [label="56: Prune (true branch) \n n$16=*&SIL_temp_conditional___50:int [line 33]\n NULLIFY(&SIL_temp_conditional___50,true); [line 33]\n PRUNE((n$16 != 0), true); [line 33]\n REMOVE_TEMPS(n$16); [line 33]\n " shape="invhouse"] +56 [label="56: Prune (true branch) \n n$16=*&SIL_temp_conditional___50:int [line 37]\n NULLIFY(&SIL_temp_conditional___50,true); [line 37]\n PRUNE((n$16 != 0), true); [line 37]\n REMOVE_TEMPS(n$16); [line 37]\n " shape="invhouse"] 56 -> 58 ; -55 [label="55: ConditinalStmt Branch \n DECLARE_LOCALS(&SIL_temp_conditional___50); [line 33]\n *&SIL_temp_conditional___50:int =1 [line 33]\n APPLY_ABSTRACTION; [line 33]\n " shape="box"] +55 [label="55: ConditinalStmt Branch \n DECLARE_LOCALS(&SIL_temp_conditional___50); [line 37]\n *&SIL_temp_conditional___50:int =1 [line 37]\n APPLY_ABSTRACTION; [line 37]\n " shape="box"] 55 -> 50 ; -54 [label="54: ConditinalStmt Branch \n DECLARE_LOCALS(&SIL_temp_conditional___50); [line 33]\n *&SIL_temp_conditional___50:int =0 [line 33]\n APPLY_ABSTRACTION; [line 33]\n " shape="box"] +54 [label="54: ConditinalStmt Branch \n DECLARE_LOCALS(&SIL_temp_conditional___50); [line 37]\n *&SIL_temp_conditional___50:int =0 [line 37]\n APPLY_ABSTRACTION; [line 37]\n " shape="box"] 54 -> 50 ; -53 [label="53: Prune (false branch) \n PRUNE((n$15 == 0), false); [line 33]\n REMOVE_TEMPS(n$14,n$15); [line 33]\n " shape="invhouse"] +53 [label="53: Prune (false branch) \n PRUNE((n$15 == 0), false); [line 37]\n REMOVE_TEMPS(n$14,n$15); [line 37]\n " shape="invhouse"] 53 -> 55 ; -52 [label="52: Prune (true branch) \n PRUNE((n$15 != 0), true); [line 33]\n REMOVE_TEMPS(n$14,n$15); [line 33]\n " shape="invhouse"] +52 [label="52: Prune (true branch) \n PRUNE((n$15 != 0), true); [line 37]\n REMOVE_TEMPS(n$14,n$15); [line 37]\n " shape="invhouse"] 52 -> 54 ; -51 [label="51: BinaryOperatorStmt: Assign \n n$14=_fun_getenv(\"BLOCKSIZE\":char *) [line 33]\n *&spec:char *=n$14 [line 33]\n n$15=*&spec:char * [line 33]\n " shape="box"] +51 [label="51: BinaryOperatorStmt: Assign \n n$14=_fun_getenv(\"BLOCKSIZE\":char *) [line 37]\n *&spec:char *=n$14 [line 37]\n n$15=*&spec:char * [line 37]\n " shape="box"] 51 -> 52 ; @@ -183,31 +183,31 @@ digraph iCFG { 50 -> 56 ; 50 -> 57 ; -49 [label="49: Prune (false branch) \n n$13=*&SIL_temp_conditional___42:int [line 32]\n NULLIFY(&SIL_temp_conditional___42,true); [line 32]\n PRUNE((n$13 == 0), false); [line 32]\n REMOVE_TEMPS(n$13); [line 32]\n APPLY_ABSTRACTION; [line 32]\n " shape="invhouse"] +49 [label="49: Prune (false branch) \n n$13=*&SIL_temp_conditional___42:int [line 36]\n NULLIFY(&SIL_temp_conditional___42,true); [line 36]\n PRUNE((n$13 == 0), false); [line 36]\n REMOVE_TEMPS(n$13); [line 36]\n APPLY_ABSTRACTION; [line 36]\n " shape="invhouse"] 49 -> 33 ; -48 [label="48: Prune (true branch) \n n$13=*&SIL_temp_conditional___42:int [line 32]\n NULLIFY(&SIL_temp_conditional___42,true); [line 32]\n PRUNE((n$13 != 0), true); [line 32]\n REMOVE_TEMPS(n$13); [line 32]\n " shape="invhouse"] +48 [label="48: Prune (true branch) \n n$13=*&SIL_temp_conditional___42:int [line 36]\n NULLIFY(&SIL_temp_conditional___42,true); [line 36]\n PRUNE((n$13 != 0), true); [line 36]\n REMOVE_TEMPS(n$13); [line 36]\n " shape="invhouse"] 48 -> 51 ; -47 [label="47: ConditinalStmt Branch \n DECLARE_LOCALS(&SIL_temp_conditional___42); [line 32]\n *&SIL_temp_conditional___42:int =1 [line 32]\n APPLY_ABSTRACTION; [line 32]\n " shape="box"] +47 [label="47: ConditinalStmt Branch \n DECLARE_LOCALS(&SIL_temp_conditional___42); [line 36]\n *&SIL_temp_conditional___42:int =1 [line 36]\n APPLY_ABSTRACTION; [line 36]\n " shape="box"] 47 -> 42 ; -46 [label="46: ConditinalStmt Branch \n DECLARE_LOCALS(&SIL_temp_conditional___42); [line 32]\n *&SIL_temp_conditional___42:int =0 [line 32]\n APPLY_ABSTRACTION; [line 32]\n " shape="box"] +46 [label="46: ConditinalStmt Branch \n DECLARE_LOCALS(&SIL_temp_conditional___42); [line 36]\n *&SIL_temp_conditional___42:int =0 [line 36]\n APPLY_ABSTRACTION; [line 36]\n " shape="box"] 46 -> 42 ; -45 [label="45: Prune (false branch) \n PRUNE((n$12 == 0), false); [line 32]\n REMOVE_TEMPS(n$11,n$12); [line 32]\n " shape="invhouse"] +45 [label="45: Prune (false branch) \n PRUNE((n$12 == 0), false); [line 36]\n REMOVE_TEMPS(n$11,n$12); [line 36]\n " shape="invhouse"] 45 -> 47 ; -44 [label="44: Prune (true branch) \n PRUNE((n$12 != 0), true); [line 32]\n REMOVE_TEMPS(n$11,n$12); [line 32]\n " shape="invhouse"] +44 [label="44: Prune (true branch) \n PRUNE((n$12 != 0), true); [line 36]\n REMOVE_TEMPS(n$11,n$12); [line 36]\n " shape="invhouse"] 44 -> 46 ; -43 [label="43: BinaryOperatorStmt: Assign \n n$11=_fun_getenv(\"BLOCK_SIZE\":char *) [line 32]\n *&spec:char *=n$11 [line 32]\n n$12=*&spec:char * [line 32]\n NULLIFY(&spec,false); [line 32]\n " shape="box"] +43 [label="43: BinaryOperatorStmt: Assign \n n$11=_fun_getenv(\"BLOCK_SIZE\":char *) [line 36]\n *&spec:char *=n$11 [line 36]\n n$12=*&spec:char * [line 36]\n NULLIFY(&spec,false); [line 36]\n " shape="box"] 43 -> 44 ; @@ -217,27 +217,27 @@ digraph iCFG { 42 -> 48 ; 42 -> 49 ; -41 [label="41: Prune (false branch) \n n$10=*&SIL_temp_conditional___35:int [line 31]\n NULLIFY(&SIL_temp_conditional___35,true); [line 31]\n PRUNE((n$10 == 0), false); [line 31]\n REMOVE_TEMPS(n$10); [line 31]\n APPLY_ABSTRACTION; [line 31]\n " shape="invhouse"] +41 [label="41: Prune (false branch) \n n$10=*&SIL_temp_conditional___35:int [line 35]\n NULLIFY(&SIL_temp_conditional___35,true); [line 35]\n PRUNE((n$10 == 0), false); [line 35]\n REMOVE_TEMPS(n$10); [line 35]\n APPLY_ABSTRACTION; [line 35]\n " shape="invhouse"] 41 -> 33 ; -40 [label="40: Prune (true branch) \n n$10=*&SIL_temp_conditional___35:int [line 31]\n NULLIFY(&SIL_temp_conditional___35,true); [line 31]\n PRUNE((n$10 != 0), true); [line 31]\n REMOVE_TEMPS(n$10); [line 31]\n " shape="invhouse"] +40 [label="40: Prune (true branch) \n n$10=*&SIL_temp_conditional___35:int [line 35]\n NULLIFY(&SIL_temp_conditional___35,true); [line 35]\n PRUNE((n$10 != 0), true); [line 35]\n REMOVE_TEMPS(n$10); [line 35]\n " shape="invhouse"] 40 -> 43 ; -39 [label="39: ConditinalStmt Branch \n NULLIFY(&spec,false); [line 31]\n DECLARE_LOCALS(&SIL_temp_conditional___35); [line 31]\n *&SIL_temp_conditional___35:int =1 [line 31]\n APPLY_ABSTRACTION; [line 31]\n " shape="box"] +39 [label="39: ConditinalStmt Branch \n NULLIFY(&spec,false); [line 35]\n DECLARE_LOCALS(&SIL_temp_conditional___35); [line 35]\n *&SIL_temp_conditional___35:int =1 [line 35]\n APPLY_ABSTRACTION; [line 35]\n " shape="box"] 39 -> 35 ; -38 [label="38: ConditinalStmt Branch \n NULLIFY(&spec,false); [line 31]\n DECLARE_LOCALS(&SIL_temp_conditional___35); [line 31]\n *&SIL_temp_conditional___35:int =0 [line 31]\n APPLY_ABSTRACTION; [line 31]\n " shape="box"] +38 [label="38: ConditinalStmt Branch \n NULLIFY(&spec,false); [line 35]\n DECLARE_LOCALS(&SIL_temp_conditional___35); [line 35]\n *&SIL_temp_conditional___35:int =0 [line 35]\n APPLY_ABSTRACTION; [line 35]\n " shape="box"] 38 -> 35 ; -37 [label="37: Prune (false branch) \n n$9=*&spec:char * [line 31]\n PRUNE((n$9 == 0), false); [line 31]\n REMOVE_TEMPS(n$9); [line 31]\n " shape="invhouse"] +37 [label="37: Prune (false branch) \n n$9=*&spec:char * [line 35]\n PRUNE((n$9 == 0), false); [line 35]\n REMOVE_TEMPS(n$9); [line 35]\n " shape="invhouse"] 37 -> 39 ; -36 [label="36: Prune (true branch) \n n$9=*&spec:char * [line 31]\n PRUNE((n$9 != 0), true); [line 31]\n REMOVE_TEMPS(n$9); [line 31]\n " shape="invhouse"] +36 [label="36: Prune (true branch) \n n$9=*&spec:char * [line 35]\n PRUNE((n$9 != 0), true); [line 35]\n REMOVE_TEMPS(n$9); [line 35]\n " shape="invhouse"] 36 -> 38 ; @@ -254,43 +254,43 @@ digraph iCFG { 33 [label="33: Exit test_loop \n " color=yellow style=filled] -32 [label="32: Start test_loop\nFormals: \nLocals: spec:char * block_size:char * \n DECLARE_LOCALS(&return,&spec,&block_size); [line 24]\n NULLIFY(&block_size,false); [line 24]\n NULLIFY(&spec,false); [line 24]\n " color=yellow style=filled] +32 [label="32: Start test_loop\nFormals: \nLocals: spec:char * block_size:char * \n DECLARE_LOCALS(&return,&spec,&block_size); [line 28]\n NULLIFY(&block_size,false); [line 28]\n NULLIFY(&spec,false); [line 28]\n " color=yellow style=filled] 32 -> 59 ; -31 [label="31: BinaryOperatorStmt: Assign \n n$8=*&x:int * [line 18]\n *n$8:int =32 [line 18]\n REMOVE_TEMPS(n$8); [line 18]\n NULLIFY(&x,false); [line 18]\n APPLY_ABSTRACTION; [line 18]\n " shape="box"] +31 [label="31: BinaryOperatorStmt: Assign \n n$8=*&x:int * [line 22]\n *n$8:int =32 [line 22]\n REMOVE_TEMPS(n$8); [line 22]\n NULLIFY(&x,false); [line 22]\n APPLY_ABSTRACTION; [line 22]\n " shape="box"] 31 -> 14 ; -30 [label="30: BinaryOperatorStmt: Assign \n *&x:int *=17 [line 15]\n NULLIFY(&x,false); [line 15]\n APPLY_ABSTRACTION; [line 15]\n " shape="box"] +30 [label="30: BinaryOperatorStmt: Assign \n *&x:int *=17 [line 19]\n NULLIFY(&x,false); [line 19]\n APPLY_ABSTRACTION; [line 19]\n " shape="box"] 30 -> 14 ; -29 [label="29: Prune (false branch) \n n$7=*&SIL_temp_conditional___22:int [line 14]\n NULLIFY(&SIL_temp_conditional___22,true); [line 14]\n PRUNE((n$7 == 0), false); [line 14]\n REMOVE_TEMPS(n$7); [line 14]\n APPLY_ABSTRACTION; [line 14]\n " shape="invhouse"] +29 [label="29: Prune (false branch) \n n$7=*&SIL_temp_conditional___22:int [line 18]\n NULLIFY(&SIL_temp_conditional___22,true); [line 18]\n PRUNE((n$7 == 0), false); [line 18]\n REMOVE_TEMPS(n$7); [line 18]\n APPLY_ABSTRACTION; [line 18]\n " shape="invhouse"] 29 -> 31 ; -28 [label="28: Prune (true branch) \n n$7=*&SIL_temp_conditional___22:int [line 14]\n NULLIFY(&SIL_temp_conditional___22,true); [line 14]\n PRUNE((n$7 != 0), true); [line 14]\n REMOVE_TEMPS(n$7); [line 14]\n NULLIFY(&x,false); [line 14]\n " shape="invhouse"] +28 [label="28: Prune (true branch) \n n$7=*&SIL_temp_conditional___22:int [line 18]\n NULLIFY(&SIL_temp_conditional___22,true); [line 18]\n PRUNE((n$7 != 0), true); [line 18]\n REMOVE_TEMPS(n$7); [line 18]\n NULLIFY(&x,false); [line 18]\n " shape="invhouse"] 28 -> 30 ; -27 [label="27: ConditinalStmt Branch \n DECLARE_LOCALS(&SIL_temp_conditional___22); [line 14]\n *&SIL_temp_conditional___22:int =1 [line 14]\n APPLY_ABSTRACTION; [line 14]\n " shape="box"] +27 [label="27: ConditinalStmt Branch \n DECLARE_LOCALS(&SIL_temp_conditional___22); [line 18]\n *&SIL_temp_conditional___22:int =1 [line 18]\n APPLY_ABSTRACTION; [line 18]\n " shape="box"] 27 -> 22 ; -26 [label="26: ConditinalStmt Branch \n DECLARE_LOCALS(&SIL_temp_conditional___22); [line 14]\n *&SIL_temp_conditional___22:int =0 [line 14]\n APPLY_ABSTRACTION; [line 14]\n " shape="box"] +26 [label="26: ConditinalStmt Branch \n DECLARE_LOCALS(&SIL_temp_conditional___22); [line 18]\n *&SIL_temp_conditional___22:int =0 [line 18]\n APPLY_ABSTRACTION; [line 18]\n " shape="box"] 26 -> 22 ; -25 [label="25: Prune (false branch) \n PRUNE((n$6 == 0), false); [line 14]\n REMOVE_TEMPS(n$5,n$6); [line 14]\n " shape="invhouse"] +25 [label="25: Prune (false branch) \n PRUNE((n$6 == 0), false); [line 18]\n REMOVE_TEMPS(n$5,n$6); [line 18]\n " shape="invhouse"] 25 -> 27 ; -24 [label="24: Prune (true branch) \n PRUNE((n$6 != 0), true); [line 14]\n REMOVE_TEMPS(n$5,n$6); [line 14]\n " shape="invhouse"] +24 [label="24: Prune (true branch) \n PRUNE((n$6 != 0), true); [line 18]\n REMOVE_TEMPS(n$5,n$6); [line 18]\n " shape="invhouse"] 24 -> 26 ; -23 [label="23: BinaryOperatorStmt: Assign \n n$5=_fun_getenv(\"BLOCK\":char *) [line 14]\n *&x:int *=n$5 [line 14]\n n$6=*&x:int * [line 14]\n " shape="box"] +23 [label="23: BinaryOperatorStmt: Assign \n n$5=_fun_getenv(\"BLOCK\":char *) [line 18]\n *&x:int *=n$5 [line 18]\n n$6=*&x:int * [line 18]\n " shape="box"] 23 -> 24 ; @@ -300,27 +300,27 @@ digraph iCFG { 22 -> 28 ; 22 -> 29 ; -21 [label="21: Prune (false branch) \n n$4=*&SIL_temp_conditional___15:int [line 14]\n NULLIFY(&SIL_temp_conditional___15,true); [line 14]\n PRUNE((n$4 == 0), false); [line 14]\n REMOVE_TEMPS(n$4); [line 14]\n APPLY_ABSTRACTION; [line 14]\n " shape="invhouse"] +21 [label="21: Prune (false branch) \n n$4=*&SIL_temp_conditional___15:int [line 18]\n NULLIFY(&SIL_temp_conditional___15,true); [line 18]\n PRUNE((n$4 == 0), false); [line 18]\n REMOVE_TEMPS(n$4); [line 18]\n APPLY_ABSTRACTION; [line 18]\n " shape="invhouse"] 21 -> 31 ; -20 [label="20: Prune (true branch) \n n$4=*&SIL_temp_conditional___15:int [line 14]\n NULLIFY(&SIL_temp_conditional___15,true); [line 14]\n PRUNE((n$4 != 0), true); [line 14]\n REMOVE_TEMPS(n$4); [line 14]\n NULLIFY(&x,false); [line 14]\n " shape="invhouse"] +20 [label="20: Prune (true branch) \n n$4=*&SIL_temp_conditional___15:int [line 18]\n NULLIFY(&SIL_temp_conditional___15,true); [line 18]\n PRUNE((n$4 != 0), true); [line 18]\n REMOVE_TEMPS(n$4); [line 18]\n NULLIFY(&x,false); [line 18]\n " shape="invhouse"] 20 -> 23 ; -19 [label="19: ConditinalStmt Branch \n DECLARE_LOCALS(&SIL_temp_conditional___15); [line 14]\n *&SIL_temp_conditional___15:int =1 [line 14]\n APPLY_ABSTRACTION; [line 14]\n " shape="box"] +19 [label="19: ConditinalStmt Branch \n DECLARE_LOCALS(&SIL_temp_conditional___15); [line 18]\n *&SIL_temp_conditional___15:int =1 [line 18]\n APPLY_ABSTRACTION; [line 18]\n " shape="box"] 19 -> 15 ; -18 [label="18: ConditinalStmt Branch \n DECLARE_LOCALS(&SIL_temp_conditional___15); [line 14]\n *&SIL_temp_conditional___15:int =0 [line 14]\n APPLY_ABSTRACTION; [line 14]\n " shape="box"] +18 [label="18: ConditinalStmt Branch \n DECLARE_LOCALS(&SIL_temp_conditional___15); [line 18]\n *&SIL_temp_conditional___15:int =0 [line 18]\n APPLY_ABSTRACTION; [line 18]\n " shape="box"] 18 -> 15 ; -17 [label="17: Prune (false branch) \n n$3=*&x:int * [line 14]\n PRUNE((n$3 == 0), false); [line 14]\n REMOVE_TEMPS(n$3); [line 14]\n " shape="invhouse"] +17 [label="17: Prune (false branch) \n n$3=*&x:int * [line 18]\n PRUNE((n$3 == 0), false); [line 18]\n REMOVE_TEMPS(n$3); [line 18]\n " shape="invhouse"] 17 -> 19 ; -16 [label="16: Prune (true branch) \n n$3=*&x:int * [line 14]\n PRUNE((n$3 != 0), true); [line 14]\n REMOVE_TEMPS(n$3); [line 14]\n " shape="invhouse"] +16 [label="16: Prune (true branch) \n n$3=*&x:int * [line 18]\n PRUNE((n$3 != 0), true); [line 18]\n REMOVE_TEMPS(n$3); [line 18]\n " shape="invhouse"] 16 -> 18 ; @@ -336,41 +336,41 @@ digraph iCFG { 13 [label="13: Exit shortcircuit_and \n " color=yellow style=filled] -12 [label="12: Start shortcircuit_and\nFormals: x:int *\nLocals: \n DECLARE_LOCALS(&return); [line 13]\n " color=yellow style=filled] +12 [label="12: Start shortcircuit_and\nFormals: x:int *\nLocals: \n DECLARE_LOCALS(&return); [line 17]\n " color=yellow style=filled] 12 -> 16 ; 12 -> 17 ; -11 [label="11: BinaryOperatorStmt: Assign \n *&x:int *=32 [line 10]\n NULLIFY(&x,false); [line 10]\n APPLY_ABSTRACTION; [line 10]\n " shape="box"] +11 [label="11: BinaryOperatorStmt: Assign \n *&x:int *=32 [line 14]\n NULLIFY(&x,false); [line 14]\n APPLY_ABSTRACTION; [line 14]\n " shape="box"] 11 -> 3 ; -10 [label="10: BinaryOperatorStmt: Assign \n NULLIFY(&x,false); [line 10]\n *&x:int *=17 [line 10]\n NULLIFY(&x,false); [line 10]\n APPLY_ABSTRACTION; [line 10]\n " shape="box"] +10 [label="10: BinaryOperatorStmt: Assign \n NULLIFY(&x,false); [line 14]\n *&x:int *=17 [line 14]\n NULLIFY(&x,false); [line 14]\n APPLY_ABSTRACTION; [line 14]\n " shape="box"] 10 -> 3 ; -9 [label="9: Prune (false branch) \n PRUNE(((n$2 == 2) == 0), false); [line 10]\n REMOVE_TEMPS(n$1,n$2); [line 10]\n " shape="invhouse"] +9 [label="9: Prune (false branch) \n PRUNE(((n$2 == 2) == 0), false); [line 14]\n REMOVE_TEMPS(n$1,n$2); [line 14]\n " shape="invhouse"] 9 -> 11 ; -8 [label="8: Prune (true branch) \n PRUNE(((n$2 == 2) != 0), true); [line 10]\n REMOVE_TEMPS(n$1,n$2); [line 10]\n APPLY_ABSTRACTION; [line 10]\n " shape="invhouse"] +8 [label="8: Prune (true branch) \n PRUNE(((n$2 == 2) != 0), true); [line 14]\n REMOVE_TEMPS(n$1,n$2); [line 14]\n APPLY_ABSTRACTION; [line 14]\n " shape="invhouse"] 8 -> 10 ; -7 [label="7: BinaryOperatorStmt: EQ \n n$1=*&x:int * [line 10]\n n$2=*n$1:int [line 10]\n NULLIFY(&x,false); [line 10]\n " shape="box"] +7 [label="7: BinaryOperatorStmt: EQ \n n$1=*&x:int * [line 14]\n n$2=*n$1:int [line 14]\n NULLIFY(&x,false); [line 14]\n " shape="box"] 7 -> 8 ; 7 -> 9 ; -6 [label="6: Prune (false branch) \n PRUNE(((n$0 == 0) == 0), false); [line 10]\n REMOVE_TEMPS(n$0); [line 10]\n " shape="invhouse"] +6 [label="6: Prune (false branch) \n PRUNE(((n$0 == 0) == 0), false); [line 14]\n REMOVE_TEMPS(n$0); [line 14]\n " shape="invhouse"] 6 -> 7 ; -5 [label="5: Prune (true branch) \n PRUNE(((n$0 == 0) != 0), true); [line 10]\n REMOVE_TEMPS(n$0); [line 10]\n APPLY_ABSTRACTION; [line 10]\n " shape="invhouse"] +5 [label="5: Prune (true branch) \n PRUNE(((n$0 == 0) != 0), true); [line 14]\n REMOVE_TEMPS(n$0); [line 14]\n APPLY_ABSTRACTION; [line 14]\n " shape="invhouse"] 5 -> 10 ; -4 [label="4: BinaryOperatorStmt: EQ \n n$0=*&x:int * [line 10]\n " shape="box"] +4 [label="4: BinaryOperatorStmt: EQ \n n$0=*&x:int * [line 14]\n " shape="box"] 4 -> 5 ; @@ -382,7 +382,7 @@ digraph iCFG { 2 [label="2: Exit shortcircuit_or \n " color=yellow style=filled] -1 [label="1: Start shortcircuit_or\nFormals: x:int *\nLocals: \n DECLARE_LOCALS(&return); [line 8]\n " color=yellow style=filled] +1 [label="1: Start shortcircuit_or\nFormals: x:int *\nLocals: \n DECLARE_LOCALS(&return); [line 12]\n " color=yellow style=filled] 1 -> 4 ; diff --git a/infer/tests/codetoanalyze/c/frontend/conditional_operator/int_negation.c b/infer/tests/codetoanalyze/c/frontend/conditional_operator/int_negation.c index 35b08ec00..534bb9795 100644 --- a/infer/tests/codetoanalyze/c/frontend/conditional_operator/int_negation.c +++ b/infer/tests/codetoanalyze/c/frontend/conditional_operator/int_negation.c @@ -1,6 +1,10 @@ /* - * Copyright (c) 2013 - Facebook. - * All rights reserved. +* Copyright (c) 2013 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ int identity(int x) { diff --git a/infer/tests/codetoanalyze/c/frontend/conditional_operator/int_negation.dot b/infer/tests/codetoanalyze/c/frontend/conditional_operator/int_negation.dot index 496c8ef54..92cb1e2ae 100644 --- a/infer/tests/codetoanalyze/c/frontend/conditional_operator/int_negation.dot +++ b/infer/tests/codetoanalyze/c/frontend/conditional_operator/int_negation.dot @@ -1,17 +1,17 @@ digraph iCFG { -32 [label="32: ConditinalStmt Branch \n NULLIFY(&x,false); [line 29]\n DECLARE_LOCALS(&SIL_temp_conditional___28); [line 29]\n *&SIL_temp_conditional___28:int =1 [line 29]\n APPLY_ABSTRACTION; [line 29]\n " shape="box"] +32 [label="32: ConditinalStmt Branch \n NULLIFY(&x,false); [line 33]\n DECLARE_LOCALS(&SIL_temp_conditional___28); [line 33]\n *&SIL_temp_conditional___28:int =1 [line 33]\n APPLY_ABSTRACTION; [line 33]\n " shape="box"] 32 -> 28 ; -31 [label="31: ConditinalStmt Branch \n NULLIFY(&x,false); [line 29]\n DECLARE_LOCALS(&SIL_temp_conditional___28); [line 29]\n *&SIL_temp_conditional___28:int =0 [line 29]\n APPLY_ABSTRACTION; [line 29]\n " shape="box"] +31 [label="31: ConditinalStmt Branch \n NULLIFY(&x,false); [line 33]\n DECLARE_LOCALS(&SIL_temp_conditional___28); [line 33]\n *&SIL_temp_conditional___28:int =0 [line 33]\n APPLY_ABSTRACTION; [line 33]\n " shape="box"] 31 -> 28 ; -30 [label="30: Prune (false branch) \n n$6=*&x:int [line 29]\n PRUNE((n$6 == 0), false); [line 29]\n REMOVE_TEMPS(n$6); [line 29]\n " shape="invhouse"] +30 [label="30: Prune (false branch) \n n$6=*&x:int [line 33]\n PRUNE((n$6 == 0), false); [line 33]\n REMOVE_TEMPS(n$6); [line 33]\n " shape="invhouse"] 30 -> 32 ; -29 [label="29: Prune (true branch) \n n$6=*&x:int [line 29]\n PRUNE((n$6 != 0), true); [line 29]\n REMOVE_TEMPS(n$6); [line 29]\n " shape="invhouse"] +29 [label="29: Prune (true branch) \n n$6=*&x:int [line 33]\n PRUNE((n$6 != 0), true); [line 33]\n REMOVE_TEMPS(n$6); [line 33]\n " shape="invhouse"] 29 -> 31 ; @@ -19,52 +19,52 @@ digraph iCFG { 28 -> 27 ; -27 [label="27: Return Stmt \n n$7=*&SIL_temp_conditional___28:int [line 29]\n NULLIFY(&SIL_temp_conditional___28,true); [line 29]\n *&return:int =n$7 [line 29]\n REMOVE_TEMPS(n$7); [line 29]\n APPLY_ABSTRACTION; [line 29]\n " shape="box"] +27 [label="27: Return Stmt \n n$7=*&SIL_temp_conditional___28:int [line 33]\n NULLIFY(&SIL_temp_conditional___28,true); [line 33]\n *&return:int =n$7 [line 33]\n REMOVE_TEMPS(n$7); [line 33]\n APPLY_ABSTRACTION; [line 33]\n " shape="box"] 27 -> 26 ; 26 [label="26: Exit neg \n " color=yellow style=filled] -25 [label="25: Start neg\nFormals: x:int \nLocals: \n DECLARE_LOCALS(&return); [line 28]\n " color=yellow style=filled] +25 [label="25: Start neg\nFormals: x:int \nLocals: \n DECLARE_LOCALS(&return); [line 32]\n " color=yellow style=filled] 25 -> 29 ; 25 -> 30 ; -24 [label="24: Return Stmt \n *&return:int =0 [line 24]\n APPLY_ABSTRACTION; [line 24]\n " shape="box"] +24 [label="24: Return Stmt \n *&return:int =0 [line 28]\n APPLY_ABSTRACTION; [line 28]\n " shape="box"] 24 -> 13 ; -23 [label="23: Return Stmt \n *&return:int =1 [line 22]\n APPLY_ABSTRACTION; [line 22]\n " shape="box"] +23 [label="23: Return Stmt \n *&return:int =1 [line 26]\n APPLY_ABSTRACTION; [line 26]\n " shape="box"] 23 -> 13 ; -22 [label="22: Prune (false branch) \n PRUNE((n$5 == 0), false); [line 21]\n REMOVE_TEMPS(n$4,n$5); [line 21]\n " shape="invhouse"] +22 [label="22: Prune (false branch) \n PRUNE((n$5 == 0), false); [line 25]\n REMOVE_TEMPS(n$4,n$5); [line 25]\n " shape="invhouse"] 22 -> 24 ; -21 [label="21: Prune (true branch) \n PRUNE((n$5 != 0), true); [line 21]\n REMOVE_TEMPS(n$4,n$5); [line 21]\n " shape="invhouse"] +21 [label="21: Prune (true branch) \n PRUNE((n$5 != 0), true); [line 25]\n REMOVE_TEMPS(n$4,n$5); [line 25]\n " shape="invhouse"] 21 -> 23 ; -20 [label="20: Call _fun_identity \n n$4=*&SIL_temp_conditional___15:int [line 21]\n NULLIFY(&SIL_temp_conditional___15,true); [line 21]\n n$5=_fun_identity(n$4:int ) [line 21]\n " shape="box"] +20 [label="20: Call _fun_identity \n n$4=*&SIL_temp_conditional___15:int [line 25]\n NULLIFY(&SIL_temp_conditional___15,true); [line 25]\n n$5=_fun_identity(n$4:int ) [line 25]\n " shape="box"] 20 -> 21 ; 20 -> 22 ; -19 [label="19: ConditinalStmt Branch \n NULLIFY(&x,false); [line 21]\n DECLARE_LOCALS(&SIL_temp_conditional___15); [line 21]\n *&SIL_temp_conditional___15:int =1 [line 21]\n APPLY_ABSTRACTION; [line 21]\n " shape="box"] +19 [label="19: ConditinalStmt Branch \n NULLIFY(&x,false); [line 25]\n DECLARE_LOCALS(&SIL_temp_conditional___15); [line 25]\n *&SIL_temp_conditional___15:int =1 [line 25]\n APPLY_ABSTRACTION; [line 25]\n " shape="box"] 19 -> 15 ; -18 [label="18: ConditinalStmt Branch \n NULLIFY(&x,false); [line 21]\n DECLARE_LOCALS(&SIL_temp_conditional___15); [line 21]\n *&SIL_temp_conditional___15:int =0 [line 21]\n APPLY_ABSTRACTION; [line 21]\n " shape="box"] +18 [label="18: ConditinalStmt Branch \n NULLIFY(&x,false); [line 25]\n DECLARE_LOCALS(&SIL_temp_conditional___15); [line 25]\n *&SIL_temp_conditional___15:int =0 [line 25]\n APPLY_ABSTRACTION; [line 25]\n " shape="box"] 18 -> 15 ; -17 [label="17: Prune (false branch) \n n$3=*&x:int [line 21]\n PRUNE((n$3 == 0), false); [line 21]\n REMOVE_TEMPS(n$3); [line 21]\n " shape="invhouse"] +17 [label="17: Prune (false branch) \n n$3=*&x:int [line 25]\n PRUNE((n$3 == 0), false); [line 25]\n REMOVE_TEMPS(n$3); [line 25]\n " shape="invhouse"] 17 -> 19 ; -16 [label="16: Prune (true branch) \n n$3=*&x:int [line 21]\n PRUNE((n$3 != 0), true); [line 21]\n REMOVE_TEMPS(n$3); [line 21]\n " shape="invhouse"] +16 [label="16: Prune (true branch) \n n$3=*&x:int [line 25]\n PRUNE((n$3 != 0), true); [line 25]\n REMOVE_TEMPS(n$3); [line 25]\n " shape="invhouse"] 16 -> 18 ; @@ -72,58 +72,58 @@ digraph iCFG { 15 -> 20 ; -14 [label="14: + \n NULLIFY(&x,false); [line 21]\n " ] +14 [label="14: + \n NULLIFY(&x,false); [line 25]\n " ] 14 -> 13 ; 13 [label="13: Exit baz \n " color=yellow style=filled] -12 [label="12: Start baz\nFormals: x:int \nLocals: \n DECLARE_LOCALS(&return); [line 19]\n " color=yellow style=filled] +12 [label="12: Start baz\nFormals: x:int \nLocals: \n DECLARE_LOCALS(&return); [line 23]\n " color=yellow style=filled] 12 -> 16 ; 12 -> 17 ; -11 [label="11: Return Stmt \n *&return:int =0 [line 15]\n APPLY_ABSTRACTION; [line 15]\n " shape="box"] +11 [label="11: Return Stmt \n *&return:int =0 [line 19]\n APPLY_ABSTRACTION; [line 19]\n " shape="box"] 11 -> 5 ; -10 [label="10: Return Stmt \n *&return:int =1 [line 13]\n APPLY_ABSTRACTION; [line 13]\n " shape="box"] +10 [label="10: Return Stmt \n *&return:int =1 [line 17]\n APPLY_ABSTRACTION; [line 17]\n " shape="box"] 10 -> 5 ; -9 [label="9: Prune (false branch) \n PRUNE((n$2 == 0), false); [line 12]\n REMOVE_TEMPS(n$1,n$2); [line 12]\n " shape="invhouse"] +9 [label="9: Prune (false branch) \n PRUNE((n$2 == 0), false); [line 16]\n REMOVE_TEMPS(n$1,n$2); [line 16]\n " shape="invhouse"] 9 -> 11 ; -8 [label="8: Prune (true branch) \n PRUNE((n$2 != 0), true); [line 12]\n REMOVE_TEMPS(n$1,n$2); [line 12]\n " shape="invhouse"] +8 [label="8: Prune (true branch) \n PRUNE((n$2 != 0), true); [line 16]\n REMOVE_TEMPS(n$1,n$2); [line 16]\n " shape="invhouse"] 8 -> 10 ; -7 [label="7: Call _fun_identity \n n$1=*&x:int [line 12]\n n$2=_fun_identity(n$1:int ) [line 12]\n NULLIFY(&x,false); [line 12]\n " shape="box"] +7 [label="7: Call _fun_identity \n n$1=*&x:int [line 16]\n n$2=_fun_identity(n$1:int ) [line 16]\n NULLIFY(&x,false); [line 16]\n " shape="box"] 7 -> 8 ; 7 -> 9 ; -6 [label="6: + \n NULLIFY(&x,false); [line 12]\n " ] +6 [label="6: + \n NULLIFY(&x,false); [line 16]\n " ] 6 -> 5 ; 5 [label="5: Exit bar \n " color=yellow style=filled] -4 [label="4: Start bar\nFormals: x:int \nLocals: \n DECLARE_LOCALS(&return); [line 11]\n " color=yellow style=filled] +4 [label="4: Start bar\nFormals: x:int \nLocals: \n DECLARE_LOCALS(&return); [line 15]\n " color=yellow style=filled] 4 -> 7 ; -3 [label="3: Return Stmt \n n$0=*&x:int [line 7]\n *&return:int =n$0 [line 7]\n REMOVE_TEMPS(n$0); [line 7]\n NULLIFY(&x,false); [line 7]\n APPLY_ABSTRACTION; [line 7]\n " shape="box"] +3 [label="3: Return Stmt \n n$0=*&x:int [line 11]\n *&return:int =n$0 [line 11]\n REMOVE_TEMPS(n$0); [line 11]\n NULLIFY(&x,false); [line 11]\n APPLY_ABSTRACTION; [line 11]\n " shape="box"] 3 -> 2 ; 2 [label="2: Exit identity \n " color=yellow style=filled] -1 [label="1: Start identity\nFormals: x:int \nLocals: \n DECLARE_LOCALS(&return); [line 6]\n " color=yellow style=filled] +1 [label="1: Start identity\nFormals: x:int \nLocals: \n DECLARE_LOCALS(&return); [line 10]\n " color=yellow style=filled] 1 -> 3 ; diff --git a/infer/tests/codetoanalyze/c/frontend/conditional_operator/member_access.c b/infer/tests/codetoanalyze/c/frontend/conditional_operator/member_access.c index d28d81957..a5dfd3b0d 100644 --- a/infer/tests/codetoanalyze/c/frontend/conditional_operator/member_access.c +++ b/infer/tests/codetoanalyze/c/frontend/conditional_operator/member_access.c @@ -1,6 +1,10 @@ /* - * Copyright (c) 2013 - Facebook. - * All rights reserved. +* Copyright (c) 2013 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ struct s { diff --git a/infer/tests/codetoanalyze/c/frontend/conditional_operator/member_access.dot b/infer/tests/codetoanalyze/c/frontend/conditional_operator/member_access.dot index 879bb9b85..b0b81a7a2 100644 --- a/infer/tests/codetoanalyze/c/frontend/conditional_operator/member_access.dot +++ b/infer/tests/codetoanalyze/c/frontend/conditional_operator/member_access.dot @@ -1,17 +1,17 @@ digraph iCFG { -24 [label="24: ConditinalStmt Branch \n DECLARE_LOCALS(&SIL_temp_conditional___20); [line 21]\n *&SIL_temp_conditional___20:int =0 [line 21]\n APPLY_ABSTRACTION; [line 21]\n " shape="box"] +24 [label="24: ConditinalStmt Branch \n DECLARE_LOCALS(&SIL_temp_conditional___20); [line 25]\n *&SIL_temp_conditional___20:int =0 [line 25]\n APPLY_ABSTRACTION; [line 25]\n " shape="box"] 24 -> 20 ; -23 [label="23: Call _fun_ret_ptr \n n$7=_fun_ret_ptr(4:int ) [line 21]\n n$8=*n$7.field:int [line 21]\n DECLARE_LOCALS(&SIL_temp_conditional___20); [line 21]\n *&SIL_temp_conditional___20:int =n$8 [line 21]\n REMOVE_TEMPS(n$7,n$8); [line 21]\n APPLY_ABSTRACTION; [line 21]\n " shape="box"] +23 [label="23: Call _fun_ret_ptr \n n$7=_fun_ret_ptr(4:int ) [line 25]\n n$8=*n$7.field:int [line 25]\n DECLARE_LOCALS(&SIL_temp_conditional___20); [line 25]\n *&SIL_temp_conditional___20:int =n$8 [line 25]\n REMOVE_TEMPS(n$7,n$8); [line 25]\n APPLY_ABSTRACTION; [line 25]\n " shape="box"] 23 -> 20 ; -22 [label="22: Prune (false branch) \n PRUNE((1 == 0), false); [line 21]\n " shape="invhouse"] +22 [label="22: Prune (false branch) \n PRUNE((1 == 0), false); [line 25]\n " shape="invhouse"] 22 -> 24 ; -21 [label="21: Prune (true branch) \n PRUNE((1 != 0), true); [line 21]\n " shape="invhouse"] +21 [label="21: Prune (true branch) \n PRUNE((1 != 0), true); [line 25]\n " shape="invhouse"] 21 -> 23 ; @@ -19,31 +19,31 @@ digraph iCFG { 20 -> 19 ; -19 [label="19: DeclStmt \n n$9=*&SIL_temp_conditional___20:int [line 21]\n NULLIFY(&SIL_temp_conditional___20,true); [line 21]\n *&z:int =n$9 [line 21]\n REMOVE_TEMPS(n$9); [line 21]\n NULLIFY(&z,false); [line 21]\n APPLY_ABSTRACTION; [line 21]\n " shape="box"] +19 [label="19: DeclStmt \n n$9=*&SIL_temp_conditional___20:int [line 25]\n NULLIFY(&SIL_temp_conditional___20,true); [line 25]\n *&z:int =n$9 [line 25]\n REMOVE_TEMPS(n$9); [line 25]\n NULLIFY(&z,false); [line 25]\n APPLY_ABSTRACTION; [line 25]\n " shape="box"] 19 -> 18 ; 18 [label="18: Exit access_field_in_ife_branch \n " color=yellow style=filled] -17 [label="17: Start access_field_in_ife_branch\nFormals: \nLocals: z:int \n DECLARE_LOCALS(&return,&z); [line 20]\n NULLIFY(&z,false); [line 20]\n " color=yellow style=filled] +17 [label="17: Start access_field_in_ife_branch\nFormals: \nLocals: z:int \n DECLARE_LOCALS(&return,&z); [line 24]\n NULLIFY(&z,false); [line 24]\n " color=yellow style=filled] 17 -> 21 ; 17 -> 22 ; -16 [label="16: ConditinalStmt Branch \n DECLARE_LOCALS(&SIL_temp_conditional___12); [line 17]\n *&SIL_temp_conditional___12:int =3 [line 17]\n APPLY_ABSTRACTION; [line 17]\n " shape="box"] +16 [label="16: ConditinalStmt Branch \n DECLARE_LOCALS(&SIL_temp_conditional___12); [line 21]\n *&SIL_temp_conditional___12:int =3 [line 21]\n APPLY_ABSTRACTION; [line 21]\n " shape="box"] 16 -> 12 ; -15 [label="15: ConditinalStmt Branch \n DECLARE_LOCALS(&SIL_temp_conditional___12); [line 17]\n *&SIL_temp_conditional___12:int =2 [line 17]\n APPLY_ABSTRACTION; [line 17]\n " shape="box"] +15 [label="15: ConditinalStmt Branch \n DECLARE_LOCALS(&SIL_temp_conditional___12); [line 21]\n *&SIL_temp_conditional___12:int =2 [line 21]\n APPLY_ABSTRACTION; [line 21]\n " shape="box"] 15 -> 12 ; -14 [label="14: Prune (false branch) \n PRUNE((1 == 0), false); [line 17]\n " shape="invhouse"] +14 [label="14: Prune (false branch) \n PRUNE((1 == 0), false); [line 21]\n " shape="invhouse"] 14 -> 16 ; -13 [label="13: Prune (true branch) \n PRUNE((1 != 0), true); [line 17]\n " shape="invhouse"] +13 [label="13: Prune (true branch) \n PRUNE((1 != 0), true); [line 21]\n " shape="invhouse"] 13 -> 15 ; @@ -51,31 +51,31 @@ digraph iCFG { 12 -> 11 ; -11 [label="11: DeclStmt \n n$4=*&SIL_temp_conditional___12:int [line 17]\n NULLIFY(&SIL_temp_conditional___12,true); [line 17]\n n$5=_fun_ret_ptr(n$4:int ) [line 17]\n n$6=*n$5.field:int [line 17]\n *&z:int =n$6 [line 17]\n REMOVE_TEMPS(n$4,n$5,n$6); [line 17]\n NULLIFY(&z,false); [line 17]\n APPLY_ABSTRACTION; [line 17]\n " shape="box"] +11 [label="11: DeclStmt \n n$4=*&SIL_temp_conditional___12:int [line 21]\n NULLIFY(&SIL_temp_conditional___12,true); [line 21]\n n$5=_fun_ret_ptr(n$4:int ) [line 21]\n n$6=*n$5.field:int [line 21]\n *&z:int =n$6 [line 21]\n REMOVE_TEMPS(n$4,n$5,n$6); [line 21]\n NULLIFY(&z,false); [line 21]\n APPLY_ABSTRACTION; [line 21]\n " shape="box"] 11 -> 10 ; 10 [label="10: Exit call_ife_then_access_field \n " color=yellow style=filled] -9 [label="9: Start call_ife_then_access_field\nFormals: \nLocals: z:int \n DECLARE_LOCALS(&return,&z); [line 16]\n NULLIFY(&z,false); [line 16]\n " color=yellow style=filled] +9 [label="9: Start call_ife_then_access_field\nFormals: \nLocals: z:int \n DECLARE_LOCALS(&return,&z); [line 20]\n NULLIFY(&z,false); [line 20]\n " color=yellow style=filled] 9 -> 13 ; 9 -> 14 ; -8 [label="8: ConditinalStmt Branch \n NULLIFY(&p,false); [line 13]\n n$1=*&q:struct s * [line 13]\n DECLARE_LOCALS(&SIL_temp_conditional___4); [line 13]\n *&SIL_temp_conditional___4:struct s *=n$1 [line 13]\n REMOVE_TEMPS(n$1); [line 13]\n NULLIFY(&q,false); [line 13]\n APPLY_ABSTRACTION; [line 13]\n " shape="box"] +8 [label="8: ConditinalStmt Branch \n NULLIFY(&p,false); [line 17]\n n$1=*&q:struct s * [line 17]\n DECLARE_LOCALS(&SIL_temp_conditional___4); [line 17]\n *&SIL_temp_conditional___4:struct s *=n$1 [line 17]\n REMOVE_TEMPS(n$1); [line 17]\n NULLIFY(&q,false); [line 17]\n APPLY_ABSTRACTION; [line 17]\n " shape="box"] 8 -> 4 ; -7 [label="7: ConditinalStmt Branch \n NULLIFY(&q,false); [line 13]\n n$0=*&p:struct s * [line 13]\n DECLARE_LOCALS(&SIL_temp_conditional___4); [line 13]\n *&SIL_temp_conditional___4:struct s *=n$0 [line 13]\n REMOVE_TEMPS(n$0); [line 13]\n NULLIFY(&p,false); [line 13]\n APPLY_ABSTRACTION; [line 13]\n " shape="box"] +7 [label="7: ConditinalStmt Branch \n NULLIFY(&q,false); [line 17]\n n$0=*&p:struct s * [line 17]\n DECLARE_LOCALS(&SIL_temp_conditional___4); [line 17]\n *&SIL_temp_conditional___4:struct s *=n$0 [line 17]\n REMOVE_TEMPS(n$0); [line 17]\n NULLIFY(&p,false); [line 17]\n APPLY_ABSTRACTION; [line 17]\n " shape="box"] 7 -> 4 ; -6 [label="6: Prune (false branch) \n PRUNE((1 == 0), false); [line 13]\n " shape="invhouse"] +6 [label="6: Prune (false branch) \n PRUNE((1 == 0), false); [line 17]\n " shape="invhouse"] 6 -> 8 ; -5 [label="5: Prune (true branch) \n PRUNE((1 != 0), true); [line 13]\n " shape="invhouse"] +5 [label="5: Prune (true branch) \n PRUNE((1 != 0), true); [line 17]\n " shape="invhouse"] 5 -> 7 ; @@ -83,14 +83,14 @@ digraph iCFG { 4 -> 3 ; -3 [label="3: DeclStmt \n n$2=*&SIL_temp_conditional___4:struct s * [line 13]\n NULLIFY(&SIL_temp_conditional___4,true); [line 13]\n n$3=*n$2.field:int [line 13]\n *&z:int =n$3 [line 13]\n REMOVE_TEMPS(n$2,n$3); [line 13]\n NULLIFY(&z,false); [line 13]\n APPLY_ABSTRACTION; [line 13]\n " shape="box"] +3 [label="3: DeclStmt \n n$2=*&SIL_temp_conditional___4:struct s * [line 17]\n NULLIFY(&SIL_temp_conditional___4,true); [line 17]\n n$3=*n$2.field:int [line 17]\n *&z:int =n$3 [line 17]\n REMOVE_TEMPS(n$2,n$3); [line 17]\n NULLIFY(&z,false); [line 17]\n APPLY_ABSTRACTION; [line 17]\n " shape="box"] 3 -> 2 ; 2 [label="2: Exit ife_then_access_field \n " color=yellow style=filled] -1 [label="1: Start ife_then_access_field\nFormals: p:struct s * q:struct s *\nLocals: z:int \n DECLARE_LOCALS(&return,&z); [line 12]\n NULLIFY(&z,false); [line 12]\n " color=yellow style=filled] +1 [label="1: Start ife_then_access_field\nFormals: p:struct s * q:struct s *\nLocals: z:int \n DECLARE_LOCALS(&return,&z); [line 16]\n NULLIFY(&z,false); [line 16]\n " color=yellow style=filled] 1 -> 5 ; diff --git a/infer/tests/codetoanalyze/c/frontend/conditional_operator/preincrement.c b/infer/tests/codetoanalyze/c/frontend/conditional_operator/preincrement.c index 1b0e36716..df9fd48ca 100644 --- a/infer/tests/codetoanalyze/c/frontend/conditional_operator/preincrement.c +++ b/infer/tests/codetoanalyze/c/frontend/conditional_operator/preincrement.c @@ -1,6 +1,10 @@ /* - * Copyright (c) 2013 - Facebook. - * All rights reserved. +* Copyright (c) 2013 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ struct s { diff --git a/infer/tests/codetoanalyze/c/frontend/conditional_operator/preincrement.dot b/infer/tests/codetoanalyze/c/frontend/conditional_operator/preincrement.dot index 27e035229..0a6a37128 100644 --- a/infer/tests/codetoanalyze/c/frontend/conditional_operator/preincrement.dot +++ b/infer/tests/codetoanalyze/c/frontend/conditional_operator/preincrement.dot @@ -1,27 +1,27 @@ digraph iCFG { -26 [label="26: ComppoundAssignStmt \n n$12=*&p:struct s * [line 11]\n n$13=*n$12.x:int [line 11]\n *n$12.x:int =(n$13 + 1) [line 11]\n REMOVE_TEMPS(n$12,n$13); [line 11]\n " shape="box"] +26 [label="26: ComppoundAssignStmt \n n$12=*&p:struct s * [line 15]\n n$13=*n$12.x:int [line 15]\n *n$12.x:int =(n$13 + 1) [line 15]\n REMOVE_TEMPS(n$12,n$13); [line 15]\n " shape="box"] 26 -> 21 ; 26 -> 22 ; -25 [label="25: ComppoundAssignStmt \n n$10=*&SIL_temp_conditional___20:struct s * [line 12]\n NULLIFY(&SIL_temp_conditional___20,true); [line 12]\n n$11=*n$10.x:int [line 12]\n *n$10.x:int =(n$11 + 1) [line 12]\n REMOVE_TEMPS(n$10,n$11); [line 12]\n " shape="box"] +25 [label="25: ComppoundAssignStmt \n n$10=*&SIL_temp_conditional___20:struct s * [line 16]\n NULLIFY(&SIL_temp_conditional___20,true); [line 16]\n n$11=*n$10.x:int [line 16]\n *n$10.x:int =(n$11 + 1) [line 16]\n REMOVE_TEMPS(n$10,n$11); [line 16]\n " shape="box"] 25 -> 15 ; 25 -> 16 ; -24 [label="24: ConditinalStmt Branch \n n$9=*&p:struct s * [line 12]\n DECLARE_LOCALS(&SIL_temp_conditional___20); [line 12]\n *&SIL_temp_conditional___20:struct s *=n$9 [line 12]\n REMOVE_TEMPS(n$9); [line 12]\n APPLY_ABSTRACTION; [line 12]\n " shape="box"] +24 [label="24: ConditinalStmt Branch \n n$9=*&p:struct s * [line 16]\n DECLARE_LOCALS(&SIL_temp_conditional___20); [line 16]\n *&SIL_temp_conditional___20:struct s *=n$9 [line 16]\n REMOVE_TEMPS(n$9); [line 16]\n APPLY_ABSTRACTION; [line 16]\n " shape="box"] 24 -> 20 ; -23 [label="23: ConditinalStmt Branch \n n$8=*&p:struct s * [line 12]\n DECLARE_LOCALS(&SIL_temp_conditional___20); [line 12]\n *&SIL_temp_conditional___20:struct s *=n$8 [line 12]\n REMOVE_TEMPS(n$8); [line 12]\n APPLY_ABSTRACTION; [line 12]\n " shape="box"] +23 [label="23: ConditinalStmt Branch \n n$8=*&p:struct s * [line 16]\n DECLARE_LOCALS(&SIL_temp_conditional___20); [line 16]\n *&SIL_temp_conditional___20:struct s *=n$8 [line 16]\n REMOVE_TEMPS(n$8); [line 16]\n APPLY_ABSTRACTION; [line 16]\n " shape="box"] 23 -> 20 ; -22 [label="22: Prune (false branch) \n PRUNE((1 == 0), false); [line 12]\n " shape="invhouse"] +22 [label="22: Prune (false branch) \n PRUNE((1 == 0), false); [line 16]\n " shape="invhouse"] 22 -> 24 ; -21 [label="21: Prune (true branch) \n PRUNE((1 != 0), true); [line 12]\n " shape="invhouse"] +21 [label="21: Prune (true branch) \n PRUNE((1 != 0), true); [line 16]\n " shape="invhouse"] 21 -> 23 ; @@ -29,24 +29,24 @@ digraph iCFG { 20 -> 25 ; -19 [label="19: ComppoundAssignStmt \n n$5=*&p:struct s * [line 13]\n n$6=*&SIL_temp_conditional___14:int [line 13]\n NULLIFY(&SIL_temp_conditional___14,true); [line 13]\n n$7=*n$5.x:int [line 13]\n *n$5.x:int =(n$7 + n$6) [line 13]\n REMOVE_TEMPS(n$5,n$6,n$7); [line 13]\n " shape="box"] +19 [label="19: ComppoundAssignStmt \n n$5=*&p:struct s * [line 17]\n n$6=*&SIL_temp_conditional___14:int [line 17]\n NULLIFY(&SIL_temp_conditional___14,true); [line 17]\n n$7=*n$5.x:int [line 17]\n *n$5.x:int =(n$7 + n$6) [line 17]\n REMOVE_TEMPS(n$5,n$6,n$7); [line 17]\n " shape="box"] 19 -> 4 ; 19 -> 5 ; -18 [label="18: ConditinalStmt Branch \n DECLARE_LOCALS(&SIL_temp_conditional___14); [line 13]\n *&SIL_temp_conditional___14:int =7 [line 13]\n APPLY_ABSTRACTION; [line 13]\n " shape="box"] +18 [label="18: ConditinalStmt Branch \n DECLARE_LOCALS(&SIL_temp_conditional___14); [line 17]\n *&SIL_temp_conditional___14:int =7 [line 17]\n APPLY_ABSTRACTION; [line 17]\n " shape="box"] 18 -> 14 ; -17 [label="17: ConditinalStmt Branch \n DECLARE_LOCALS(&SIL_temp_conditional___14); [line 13]\n *&SIL_temp_conditional___14:int =3 [line 13]\n APPLY_ABSTRACTION; [line 13]\n " shape="box"] +17 [label="17: ConditinalStmt Branch \n DECLARE_LOCALS(&SIL_temp_conditional___14); [line 17]\n *&SIL_temp_conditional___14:int =3 [line 17]\n APPLY_ABSTRACTION; [line 17]\n " shape="box"] 17 -> 14 ; -16 [label="16: Prune (false branch) \n PRUNE((1 == 0), false); [line 13]\n " shape="invhouse"] +16 [label="16: Prune (false branch) \n PRUNE((1 == 0), false); [line 17]\n " shape="invhouse"] 16 -> 18 ; -15 [label="15: Prune (true branch) \n PRUNE((1 != 0), true); [line 13]\n " shape="invhouse"] +15 [label="15: Prune (true branch) \n PRUNE((1 != 0), true); [line 17]\n " shape="invhouse"] 15 -> 17 ; @@ -54,23 +54,23 @@ digraph iCFG { 14 -> 19 ; -13 [label="13: ComppoundAssignStmt \n n$2=*&SIL_temp_conditional___3:struct s * [line 14]\n NULLIFY(&SIL_temp_conditional___3,true); [line 14]\n n$3=*&SIL_temp_conditional___8:int [line 14]\n NULLIFY(&SIL_temp_conditional___8,true); [line 14]\n n$4=*n$2.x:int [line 14]\n *n$2.x:int =(n$4 + n$3) [line 14]\n REMOVE_TEMPS(n$2,n$3,n$4); [line 14]\n APPLY_ABSTRACTION; [line 14]\n " shape="box"] +13 [label="13: ComppoundAssignStmt \n n$2=*&SIL_temp_conditional___3:struct s * [line 18]\n NULLIFY(&SIL_temp_conditional___3,true); [line 18]\n n$3=*&SIL_temp_conditional___8:int [line 18]\n NULLIFY(&SIL_temp_conditional___8,true); [line 18]\n n$4=*n$2.x:int [line 18]\n *n$2.x:int =(n$4 + n$3) [line 18]\n REMOVE_TEMPS(n$2,n$3,n$4); [line 18]\n APPLY_ABSTRACTION; [line 18]\n " shape="box"] 13 -> 2 ; -12 [label="12: ConditinalStmt Branch \n DECLARE_LOCALS(&SIL_temp_conditional___8); [line 14]\n *&SIL_temp_conditional___8:int =7 [line 14]\n APPLY_ABSTRACTION; [line 14]\n " shape="box"] +12 [label="12: ConditinalStmt Branch \n DECLARE_LOCALS(&SIL_temp_conditional___8); [line 18]\n *&SIL_temp_conditional___8:int =7 [line 18]\n APPLY_ABSTRACTION; [line 18]\n " shape="box"] 12 -> 8 ; -11 [label="11: ConditinalStmt Branch \n DECLARE_LOCALS(&SIL_temp_conditional___8); [line 14]\n *&SIL_temp_conditional___8:int =3 [line 14]\n APPLY_ABSTRACTION; [line 14]\n " shape="box"] +11 [label="11: ConditinalStmt Branch \n DECLARE_LOCALS(&SIL_temp_conditional___8); [line 18]\n *&SIL_temp_conditional___8:int =3 [line 18]\n APPLY_ABSTRACTION; [line 18]\n " shape="box"] 11 -> 8 ; -10 [label="10: Prune (false branch) \n PRUNE((1 == 0), false); [line 14]\n " shape="invhouse"] +10 [label="10: Prune (false branch) \n PRUNE((1 == 0), false); [line 18]\n " shape="invhouse"] 10 -> 12 ; -9 [label="9: Prune (true branch) \n PRUNE((1 != 0), true); [line 14]\n " shape="invhouse"] +9 [label="9: Prune (true branch) \n PRUNE((1 != 0), true); [line 18]\n " shape="invhouse"] 9 -> 11 ; @@ -78,19 +78,19 @@ digraph iCFG { 8 -> 13 ; -7 [label="7: ConditinalStmt Branch \n n$1=*&p:struct s * [line 14]\n DECLARE_LOCALS(&SIL_temp_conditional___3); [line 14]\n *&SIL_temp_conditional___3:struct s *=n$1 [line 14]\n REMOVE_TEMPS(n$1); [line 14]\n NULLIFY(&p,false); [line 14]\n APPLY_ABSTRACTION; [line 14]\n " shape="box"] +7 [label="7: ConditinalStmt Branch \n n$1=*&p:struct s * [line 18]\n DECLARE_LOCALS(&SIL_temp_conditional___3); [line 18]\n *&SIL_temp_conditional___3:struct s *=n$1 [line 18]\n REMOVE_TEMPS(n$1); [line 18]\n NULLIFY(&p,false); [line 18]\n APPLY_ABSTRACTION; [line 18]\n " shape="box"] 7 -> 3 ; -6 [label="6: ConditinalStmt Branch \n n$0=*&p:struct s * [line 14]\n DECLARE_LOCALS(&SIL_temp_conditional___3); [line 14]\n *&SIL_temp_conditional___3:struct s *=n$0 [line 14]\n REMOVE_TEMPS(n$0); [line 14]\n NULLIFY(&p,false); [line 14]\n APPLY_ABSTRACTION; [line 14]\n " shape="box"] +6 [label="6: ConditinalStmt Branch \n n$0=*&p:struct s * [line 18]\n DECLARE_LOCALS(&SIL_temp_conditional___3); [line 18]\n *&SIL_temp_conditional___3:struct s *=n$0 [line 18]\n REMOVE_TEMPS(n$0); [line 18]\n NULLIFY(&p,false); [line 18]\n APPLY_ABSTRACTION; [line 18]\n " shape="box"] 6 -> 3 ; -5 [label="5: Prune (false branch) \n PRUNE((1 == 0), false); [line 14]\n " shape="invhouse"] +5 [label="5: Prune (false branch) \n PRUNE((1 == 0), false); [line 18]\n " shape="invhouse"] 5 -> 7 ; -4 [label="4: Prune (true branch) \n PRUNE((1 != 0), true); [line 14]\n " shape="invhouse"] +4 [label="4: Prune (true branch) \n PRUNE((1 != 0), true); [line 18]\n " shape="invhouse"] 4 -> 6 ; @@ -102,7 +102,7 @@ digraph iCFG { 2 [label="2: Exit preincrement \n " color=yellow style=filled] -1 [label="1: Start preincrement\nFormals: p:struct s *\nLocals: \n DECLARE_LOCALS(&return); [line 10]\n " color=yellow style=filled] +1 [label="1: Start preincrement\nFormals: p:struct s *\nLocals: \n DECLARE_LOCALS(&return); [line 14]\n " color=yellow style=filled] 1 -> 26 ; diff --git a/infer/tests/codetoanalyze/c/frontend/conditional_operator/unary_operator.c b/infer/tests/codetoanalyze/c/frontend/conditional_operator/unary_operator.c index ec6ffa27c..ffe6c8b1a 100644 --- a/infer/tests/codetoanalyze/c/frontend/conditional_operator/unary_operator.c +++ b/infer/tests/codetoanalyze/c/frontend/conditional_operator/unary_operator.c @@ -1,6 +1,10 @@ /* - * Copyright (c) 2013 - Facebook. - * All rights reserved. +* Copyright (c) 2013 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ void dereference_ifthenelse(int *p) { diff --git a/infer/tests/codetoanalyze/c/frontend/conditional_operator/unary_operator.dot b/infer/tests/codetoanalyze/c/frontend/conditional_operator/unary_operator.dot index 642179dc6..f0de12ce5 100644 --- a/infer/tests/codetoanalyze/c/frontend/conditional_operator/unary_operator.dot +++ b/infer/tests/codetoanalyze/c/frontend/conditional_operator/unary_operator.dot @@ -1,22 +1,22 @@ digraph iCFG { -20 [label="20: BinaryOperatorStmt: Assign \n n$10=*&SIL_temp_conditional___15:int * [line 8]\n NULLIFY(&SIL_temp_conditional___15,true); [line 8]\n n$11=*n$10:int [line 8]\n *&x:int =n$11 [line 8]\n REMOVE_TEMPS(n$10,n$11); [line 8]\n NULLIFY(&x,false); [line 8]\n " shape="box"] +20 [label="20: BinaryOperatorStmt: Assign \n n$10=*&SIL_temp_conditional___15:int * [line 12]\n NULLIFY(&SIL_temp_conditional___15,true); [line 12]\n n$11=*n$10:int [line 12]\n *&x:int =n$11 [line 12]\n REMOVE_TEMPS(n$10,n$11); [line 12]\n NULLIFY(&x,false); [line 12]\n " shape="box"] 20 -> 11 ; 20 -> 12 ; -19 [label="19: ConditinalStmt Branch \n n$9=*&p:int * [line 8]\n DECLARE_LOCALS(&SIL_temp_conditional___15); [line 8]\n *&SIL_temp_conditional___15:int *=n$9 [line 8]\n REMOVE_TEMPS(n$9); [line 8]\n APPLY_ABSTRACTION; [line 8]\n " shape="box"] +19 [label="19: ConditinalStmt Branch \n n$9=*&p:int * [line 12]\n DECLARE_LOCALS(&SIL_temp_conditional___15); [line 12]\n *&SIL_temp_conditional___15:int *=n$9 [line 12]\n REMOVE_TEMPS(n$9); [line 12]\n APPLY_ABSTRACTION; [line 12]\n " shape="box"] 19 -> 15 ; -18 [label="18: ConditinalStmt Branch \n n$8=*&p:int * [line 8]\n DECLARE_LOCALS(&SIL_temp_conditional___15); [line 8]\n *&SIL_temp_conditional___15:int *=n$8 [line 8]\n REMOVE_TEMPS(n$8); [line 8]\n APPLY_ABSTRACTION; [line 8]\n " shape="box"] +18 [label="18: ConditinalStmt Branch \n n$8=*&p:int * [line 12]\n DECLARE_LOCALS(&SIL_temp_conditional___15); [line 12]\n *&SIL_temp_conditional___15:int *=n$8 [line 12]\n REMOVE_TEMPS(n$8); [line 12]\n APPLY_ABSTRACTION; [line 12]\n " shape="box"] 18 -> 15 ; -17 [label="17: Prune (false branch) \n PRUNE((1 == 0), false); [line 8]\n " shape="invhouse"] +17 [label="17: Prune (false branch) \n PRUNE((1 == 0), false); [line 12]\n " shape="invhouse"] 17 -> 19 ; -16 [label="16: Prune (true branch) \n PRUNE((1 != 0), true); [line 8]\n " shape="invhouse"] +16 [label="16: Prune (true branch) \n PRUNE((1 != 0), true); [line 12]\n " shape="invhouse"] 16 -> 18 ; @@ -24,19 +24,19 @@ digraph iCFG { 15 -> 20 ; -14 [label="14: ConditinalStmt Branch \n n$5=*&p:int * [line 10]\n DECLARE_LOCALS(&SIL_temp_conditional___10); [line 10]\n *&SIL_temp_conditional___10:int *=n$5 [line 10]\n REMOVE_TEMPS(n$5); [line 10]\n APPLY_ABSTRACTION; [line 10]\n " shape="box"] +14 [label="14: ConditinalStmt Branch \n n$5=*&p:int * [line 14]\n DECLARE_LOCALS(&SIL_temp_conditional___10); [line 14]\n *&SIL_temp_conditional___10:int *=n$5 [line 14]\n REMOVE_TEMPS(n$5); [line 14]\n APPLY_ABSTRACTION; [line 14]\n " shape="box"] 14 -> 10 ; -13 [label="13: ConditinalStmt Branch \n n$4=*&p:int * [line 10]\n DECLARE_LOCALS(&SIL_temp_conditional___10); [line 10]\n *&SIL_temp_conditional___10:int *=n$4 [line 10]\n REMOVE_TEMPS(n$4); [line 10]\n APPLY_ABSTRACTION; [line 10]\n " shape="box"] +13 [label="13: ConditinalStmt Branch \n n$4=*&p:int * [line 14]\n DECLARE_LOCALS(&SIL_temp_conditional___10); [line 14]\n *&SIL_temp_conditional___10:int *=n$4 [line 14]\n REMOVE_TEMPS(n$4); [line 14]\n APPLY_ABSTRACTION; [line 14]\n " shape="box"] 13 -> 10 ; -12 [label="12: Prune (false branch) \n PRUNE((1 == 0), false); [line 10]\n " shape="invhouse"] +12 [label="12: Prune (false branch) \n PRUNE((1 == 0), false); [line 14]\n " shape="invhouse"] 12 -> 14 ; -11 [label="11: Prune (true branch) \n PRUNE((1 != 0), true); [line 10]\n " shape="invhouse"] +11 [label="11: Prune (true branch) \n PRUNE((1 != 0), true); [line 14]\n " shape="invhouse"] 11 -> 13 ; @@ -44,28 +44,28 @@ digraph iCFG { 10 -> 9 ; -9 [label="9: DeclStmt \n n$6=*&SIL_temp_conditional___10:int * [line 10]\n NULLIFY(&SIL_temp_conditional___10,true); [line 10]\n n$7=*n$6:int [line 10]\n *&y:int =n$7 [line 10]\n REMOVE_TEMPS(n$6,n$7); [line 10]\n NULLIFY(&y,false); [line 10]\n " shape="box"] +9 [label="9: DeclStmt \n n$6=*&SIL_temp_conditional___10:int * [line 14]\n NULLIFY(&SIL_temp_conditional___10,true); [line 14]\n n$7=*n$6:int [line 14]\n *&y:int =n$7 [line 14]\n REMOVE_TEMPS(n$6,n$7); [line 14]\n NULLIFY(&y,false); [line 14]\n " shape="box"] 9 -> 4 ; 9 -> 5 ; -8 [label="8: UnaryOperator \n n$2=*&SIL_temp_conditional___3:int * [line 12]\n NULLIFY(&SIL_temp_conditional___3,true); [line 12]\n REMOVE_TEMPS(n$2); [line 12]\n APPLY_ABSTRACTION; [line 12]\n " shape="box"] +8 [label="8: UnaryOperator \n n$2=*&SIL_temp_conditional___3:int * [line 16]\n NULLIFY(&SIL_temp_conditional___3,true); [line 16]\n REMOVE_TEMPS(n$2); [line 16]\n APPLY_ABSTRACTION; [line 16]\n " shape="box"] 8 -> 2 ; -7 [label="7: ConditinalStmt Branch \n n$1=*&p:int * [line 12]\n DECLARE_LOCALS(&SIL_temp_conditional___3); [line 12]\n *&SIL_temp_conditional___3:int *=n$1 [line 12]\n REMOVE_TEMPS(n$1); [line 12]\n NULLIFY(&p,false); [line 12]\n APPLY_ABSTRACTION; [line 12]\n " shape="box"] +7 [label="7: ConditinalStmt Branch \n n$1=*&p:int * [line 16]\n DECLARE_LOCALS(&SIL_temp_conditional___3); [line 16]\n *&SIL_temp_conditional___3:int *=n$1 [line 16]\n REMOVE_TEMPS(n$1); [line 16]\n NULLIFY(&p,false); [line 16]\n APPLY_ABSTRACTION; [line 16]\n " shape="box"] 7 -> 3 ; -6 [label="6: ConditinalStmt Branch \n n$0=*&p:int * [line 12]\n DECLARE_LOCALS(&SIL_temp_conditional___3); [line 12]\n *&SIL_temp_conditional___3:int *=n$0 [line 12]\n REMOVE_TEMPS(n$0); [line 12]\n NULLIFY(&p,false); [line 12]\n APPLY_ABSTRACTION; [line 12]\n " shape="box"] +6 [label="6: ConditinalStmt Branch \n n$0=*&p:int * [line 16]\n DECLARE_LOCALS(&SIL_temp_conditional___3); [line 16]\n *&SIL_temp_conditional___3:int *=n$0 [line 16]\n REMOVE_TEMPS(n$0); [line 16]\n NULLIFY(&p,false); [line 16]\n APPLY_ABSTRACTION; [line 16]\n " shape="box"] 6 -> 3 ; -5 [label="5: Prune (false branch) \n PRUNE((1 == 0), false); [line 12]\n " shape="invhouse"] +5 [label="5: Prune (false branch) \n PRUNE((1 == 0), false); [line 16]\n " shape="invhouse"] 5 -> 7 ; -4 [label="4: Prune (true branch) \n PRUNE((1 != 0), true); [line 12]\n " shape="invhouse"] +4 [label="4: Prune (true branch) \n PRUNE((1 != 0), true); [line 16]\n " shape="invhouse"] 4 -> 6 ; @@ -76,7 +76,7 @@ digraph iCFG { 2 [label="2: Exit dereference_ifthenelse \n " color=yellow style=filled] -1 [label="1: Start dereference_ifthenelse\nFormals: p:int *\nLocals: x:int y:int \n DECLARE_LOCALS(&return,&x,&y); [line 6]\n NULLIFY(&x,false); [line 6]\n NULLIFY(&y,false); [line 6]\n " color=yellow style=filled] +1 [label="1: Start dereference_ifthenelse\nFormals: p:int *\nLocals: x:int y:int \n DECLARE_LOCALS(&return,&x,&y); [line 10]\n NULLIFY(&x,false); [line 10]\n NULLIFY(&y,false); [line 10]\n " color=yellow style=filled] 1 -> 16 ; diff --git a/infer/tests/codetoanalyze/c/frontend/enumeration/enum.c b/infer/tests/codetoanalyze/c/frontend/enumeration/enum.c index 5939f9766..295b7b8a1 100644 --- a/infer/tests/codetoanalyze/c/frontend/enumeration/enum.c +++ b/infer/tests/codetoanalyze/c/frontend/enumeration/enum.c @@ -1,6 +1,10 @@ /* - * Copyright (c) 2013 - Facebook. - * All rights reserved. +* Copyright (c) 2013 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ enum week{ sunday, monday, tuesday, wednesday=0, thursday, friday, saturday}; diff --git a/infer/tests/codetoanalyze/c/frontend/enumeration/enum.dot b/infer/tests/codetoanalyze/c/frontend/enumeration/enum.dot index ec0ba6684..670640094 100644 --- a/infer/tests/codetoanalyze/c/frontend/enumeration/enum.dot +++ b/infer/tests/codetoanalyze/c/frontend/enumeration/enum.dot @@ -1,32 +1,32 @@ digraph iCFG { -8 [label="8: BinaryOperatorStmt: Assign \n *&today:enum { (sunday, 0) (monday, 1) (tuesday, 2) (wednesday, 0) (thursday, 3) (friday, 4) (saturday, 5) }=0 [line 10]\n NULLIFY(&today,false); [line 10]\n " shape="box"] +8 [label="8: BinaryOperatorStmt: Assign \n *&today:enum { (sunday, 0) (monday, 1) (tuesday, 2) (wednesday, 0) (thursday, 3) (friday, 4) (saturday, 5) }=0 [line 14]\n NULLIFY(&today,false); [line 14]\n " shape="box"] 8 -> 7 ; -7 [label="7: BinaryOperatorStmt: Assign \n *&today:enum { (sunday, 0) (monday, 1) (tuesday, 2) (wednesday, 0) (thursday, 3) (friday, 4) (saturday, 5) }=1 [line 11]\n " shape="box"] +7 [label="7: BinaryOperatorStmt: Assign \n *&today:enum { (sunday, 0) (monday, 1) (tuesday, 2) (wednesday, 0) (thursday, 3) (friday, 4) (saturday, 5) }=1 [line 15]\n " shape="box"] 7 -> 6 ; -6 [label="6: BinaryOperatorStmt: Assign \n n$0=*&today:enum { (sunday, 0) (monday, 1) (tuesday, 2) (wednesday, 0) (thursday, 3) (friday, 4) (saturday, 5) } [line 12]\n *&today:enum { (sunday, 0) (monday, 1) (tuesday, 2) (wednesday, 0) (thursday, 3) (friday, 4) (saturday, 5) }=(n$0 + 4) [line 12]\n REMOVE_TEMPS(n$0); [line 12]\n NULLIFY(&today,false); [line 12]\n " shape="box"] +6 [label="6: BinaryOperatorStmt: Assign \n n$0=*&today:enum { (sunday, 0) (monday, 1) (tuesday, 2) (wednesday, 0) (thursday, 3) (friday, 4) (saturday, 5) } [line 16]\n *&today:enum { (sunday, 0) (monday, 1) (tuesday, 2) (wednesday, 0) (thursday, 3) (friday, 4) (saturday, 5) }=(n$0 + 4) [line 16]\n REMOVE_TEMPS(n$0); [line 16]\n NULLIFY(&today,false); [line 16]\n " shape="box"] 6 -> 5 ; -5 [label="5: BinaryOperatorStmt: Assign \n *&today:enum { (sunday, 0) (monday, 1) (tuesday, 2) (wednesday, 0) (thursday, 3) (friday, 4) (saturday, 5) }=(2 + 1) [line 13]\n NULLIFY(&today,false); [line 13]\n " shape="box"] +5 [label="5: BinaryOperatorStmt: Assign \n *&today:enum { (sunday, 0) (monday, 1) (tuesday, 2) (wednesday, 0) (thursday, 3) (friday, 4) (saturday, 5) }=(2 + 1) [line 17]\n NULLIFY(&today,false); [line 17]\n " shape="box"] 5 -> 4 ; -4 [label="4: DeclStmt \n *&i:int =(2 + (4 - 0)) [line 14]\n NULLIFY(&i,false); [line 14]\n " shape="box"] +4 [label="4: DeclStmt \n *&i:int =(2 + (4 - 0)) [line 18]\n NULLIFY(&i,false); [line 18]\n " shape="box"] 4 -> 3 ; -3 [label="3: Return Stmt \n *&return:int =0 [line 15]\n APPLY_ABSTRACTION; [line 15]\n " shape="box"] +3 [label="3: Return Stmt \n *&return:int =0 [line 19]\n APPLY_ABSTRACTION; [line 19]\n " shape="box"] 3 -> 2 ; 2 [label="2: Exit main \n " color=yellow style=filled] -1 [label="1: Start main\nFormals: \nLocals: today:enum { (sunday, 0) (monday, 1) (tuesday, 2) (wednesday, 0) (thursday, 3) (friday, 4) (saturday, 5) } i:int \n DECLARE_LOCALS(&return,&today,&i); [line 8]\n NULLIFY(&i,false); [line 8]\n NULLIFY(&today,false); [line 8]\n " color=yellow style=filled] +1 [label="1: Start main\nFormals: \nLocals: today:enum { (sunday, 0) (monday, 1) (tuesday, 2) (wednesday, 0) (thursday, 3) (friday, 4) (saturday, 5) } i:int \n DECLARE_LOCALS(&return,&today,&i); [line 12]\n NULLIFY(&i,false); [line 12]\n NULLIFY(&today,false); [line 12]\n " color=yellow style=filled] 1 -> 8 ; diff --git a/infer/tests/codetoanalyze/c/frontend/gotostmt/goto_ex.c b/infer/tests/codetoanalyze/c/frontend/gotostmt/goto_ex.c index 5233670d3..2b38fca36 100644 --- a/infer/tests/codetoanalyze/c/frontend/gotostmt/goto_ex.c +++ b/infer/tests/codetoanalyze/c/frontend/gotostmt/goto_ex.c @@ -1,6 +1,10 @@ /* - * Copyright (c) 2013 - Facebook. - * All rights reserved. +* Copyright (c) 2013 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ #import diff --git a/infer/tests/codetoanalyze/c/frontend/gotostmt/goto_ex.dot b/infer/tests/codetoanalyze/c/frontend/gotostmt/goto_ex.dot index 0078c9fb7..641758e61 100644 --- a/infer/tests/codetoanalyze/c/frontend/gotostmt/goto_ex.dot +++ b/infer/tests/codetoanalyze/c/frontend/gotostmt/goto_ex.dot @@ -1,22 +1,22 @@ digraph iCFG { -252 [label="252: DeclStmt \n *&i:int =0 [line 178]\n " shape="box"] +252 [label="252: DeclStmt \n *&i:int =0 [line 182]\n " shape="box"] 252 -> 251 ; -251 [label="251: DeclStmt \n *&j:int =0 [line 178]\n " shape="box"] +251 [label="251: DeclStmt \n *&j:int =0 [line 182]\n " shape="box"] 251 -> 250 ; -250 [label="250: DeclStmt \n *&k:int =0 [line 178]\n " shape="box"] +250 [label="250: DeclStmt \n *&k:int =0 [line 182]\n " shape="box"] 250 -> 248 ; 250 -> 249 ; -249 [label="249: Prune (false branch) \n n$61=*&q:int [line 179]\n PRUNE((n$61 == 0), false); [line 179]\n REMOVE_TEMPS(n$61); [line 179]\n " shape="invhouse"] +249 [label="249: Prune (false branch) \n n$61=*&q:int [line 183]\n PRUNE((n$61 == 0), false); [line 183]\n REMOVE_TEMPS(n$61); [line 183]\n " shape="invhouse"] 249 -> 247 ; -248 [label="248: Prune (true branch) \n n$61=*&q:int [line 179]\n PRUNE((n$61 != 0), true); [line 179]\n REMOVE_TEMPS(n$61); [line 179]\n APPLY_ABSTRACTION; [line 179]\n " shape="invhouse"] +248 [label="248: Prune (true branch) \n n$61=*&q:int [line 183]\n PRUNE((n$61 != 0), true); [line 183]\n REMOVE_TEMPS(n$61); [line 183]\n APPLY_ABSTRACTION; [line 183]\n " shape="invhouse"] 248 -> 245 ; @@ -24,27 +24,27 @@ digraph iCFG { 247 -> 228 ; -246 [label="246: DeclStmt \n n$58=*&i:int [line 183]\n n$59=*&j:int [line 183]\n n$60=*&k:int [line 183]\n *&v:int =((n$58 + n$59) + n$60) [line 183]\n REMOVE_TEMPS(n$58,n$59,n$60); [line 183]\n " shape="box"] +246 [label="246: DeclStmt \n n$58=*&i:int [line 187]\n n$59=*&j:int [line 187]\n n$60=*&k:int [line 187]\n *&v:int =((n$58 + n$59) + n$60) [line 187]\n REMOVE_TEMPS(n$58,n$59,n$60); [line 187]\n " shape="box"] 246 -> 241 ; -245 [label="245: Skip GotoLabel_print \n NULLIFY(&q,false); [line 185]\n " color="gray"] +245 [label="245: Skip GotoLabel_print \n NULLIFY(&q,false); [line 189]\n " color="gray"] 245 -> 244 ; -244 [label="244: Call _fun_printf \n n$57=_fun_printf(\"wow\\n\":char *) [line 186]\n REMOVE_TEMPS(n$57); [line 186]\n APPLY_ABSTRACTION; [line 186]\n " shape="box"] +244 [label="244: Call _fun_printf \n n$57=_fun_printf(\"wow\\n\":char *) [line 190]\n REMOVE_TEMPS(n$57); [line 190]\n APPLY_ABSTRACTION; [line 190]\n " shape="box"] 244 -> 240 ; -243 [label="243: Prune (false branch) \n PRUNE(((n$56 >= 15) == 0), false); [line 184]\n REMOVE_TEMPS(n$56); [line 184]\n APPLY_ABSTRACTION; [line 184]\n " shape="invhouse"] +243 [label="243: Prune (false branch) \n PRUNE(((n$56 >= 15) == 0), false); [line 188]\n REMOVE_TEMPS(n$56); [line 188]\n APPLY_ABSTRACTION; [line 188]\n " shape="invhouse"] 243 -> 240 ; -242 [label="242: Prune (true branch) \n PRUNE(((n$56 >= 15) != 0), true); [line 184]\n REMOVE_TEMPS(n$56); [line 184]\n APPLY_ABSTRACTION; [line 184]\n " shape="invhouse"] +242 [label="242: Prune (true branch) \n PRUNE(((n$56 >= 15) != 0), true); [line 188]\n REMOVE_TEMPS(n$56); [line 188]\n APPLY_ABSTRACTION; [line 188]\n " shape="invhouse"] 242 -> 245 ; -241 [label="241: BinaryOperatorStmt: GE \n n$56=*&v:int [line 184]\n NULLIFY(&v,false); [line 184]\n " shape="box"] +241 [label="241: BinaryOperatorStmt: GE \n n$56=*&v:int [line 188]\n NULLIFY(&v,false); [line 188]\n " shape="box"] 241 -> 242 ; @@ -53,15 +53,15 @@ digraph iCFG { 240 -> 236 ; -239 [label="239: Prune (false branch) \n PRUNE(((n$55 < 10) == 0), false); [line 182]\n REMOVE_TEMPS(n$55); [line 182]\n APPLY_ABSTRACTION; [line 182]\n " shape="invhouse"] +239 [label="239: Prune (false branch) \n PRUNE(((n$55 < 10) == 0), false); [line 186]\n REMOVE_TEMPS(n$55); [line 186]\n APPLY_ABSTRACTION; [line 186]\n " shape="invhouse"] 239 -> 232 ; -238 [label="238: Prune (true branch) \n PRUNE(((n$55 < 10) != 0), true); [line 182]\n REMOVE_TEMPS(n$55); [line 182]\n " shape="invhouse"] +238 [label="238: Prune (true branch) \n PRUNE(((n$55 < 10) != 0), true); [line 186]\n REMOVE_TEMPS(n$55); [line 186]\n " shape="invhouse"] 238 -> 246 ; -237 [label="237: BinaryOperatorStmt: LT \n n$55=*&k:int [line 182]\n " shape="box"] +237 [label="237: BinaryOperatorStmt: LT \n n$55=*&k:int [line 186]\n " shape="box"] 237 -> 238 ; @@ -70,15 +70,15 @@ digraph iCFG { 236 -> 237 ; -235 [label="235: Prune (false branch) \n PRUNE(((n$54 < 10) == 0), false); [line 181]\n REMOVE_TEMPS(n$54); [line 181]\n APPLY_ABSTRACTION; [line 181]\n " shape="invhouse"] +235 [label="235: Prune (false branch) \n PRUNE(((n$54 < 10) == 0), false); [line 185]\n REMOVE_TEMPS(n$54); [line 185]\n APPLY_ABSTRACTION; [line 185]\n " shape="invhouse"] 235 -> 228 ; -234 [label="234: Prune (true branch) \n PRUNE(((n$54 < 10) != 0), true); [line 181]\n REMOVE_TEMPS(n$54); [line 181]\n APPLY_ABSTRACTION; [line 181]\n " shape="invhouse"] +234 [label="234: Prune (true branch) \n PRUNE(((n$54 < 10) != 0), true); [line 185]\n REMOVE_TEMPS(n$54); [line 185]\n APPLY_ABSTRACTION; [line 185]\n " shape="invhouse"] 234 -> 236 ; -233 [label="233: BinaryOperatorStmt: LT \n n$54=*&j:int [line 181]\n " shape="box"] +233 [label="233: BinaryOperatorStmt: LT \n n$54=*&j:int [line 185]\n " shape="box"] 233 -> 234 ; @@ -87,15 +87,15 @@ digraph iCFG { 232 -> 233 ; -231 [label="231: Prune (false branch) \n PRUNE(((n$53 < 10) == 0), false); [line 180]\n REMOVE_TEMPS(n$53); [line 180]\n " shape="invhouse"] +231 [label="231: Prune (false branch) \n PRUNE(((n$53 < 10) == 0), false); [line 184]\n REMOVE_TEMPS(n$53); [line 184]\n " shape="invhouse"] 231 -> 227 ; -230 [label="230: Prune (true branch) \n PRUNE(((n$53 < 10) != 0), true); [line 180]\n REMOVE_TEMPS(n$53); [line 180]\n APPLY_ABSTRACTION; [line 180]\n " shape="invhouse"] +230 [label="230: Prune (true branch) \n PRUNE(((n$53 < 10) != 0), true); [line 184]\n REMOVE_TEMPS(n$53); [line 184]\n APPLY_ABSTRACTION; [line 184]\n " shape="invhouse"] 230 -> 232 ; -229 [label="229: BinaryOperatorStmt: LT \n NULLIFY(&q,false); [line 180]\n n$53=*&i:int [line 180]\n " shape="box"] +229 [label="229: BinaryOperatorStmt: LT \n NULLIFY(&q,false); [line 184]\n n$53=*&i:int [line 184]\n " shape="box"] 229 -> 230 ; @@ -104,11 +104,11 @@ digraph iCFG { 228 -> 229 ; -227 [label="227: Skip GotoLabel_out \n NULLIFY(&i,false); [line 192]\n NULLIFY(&j,false); [line 192]\n NULLIFY(&k,false); [line 192]\n " color="gray"] +227 [label="227: Skip GotoLabel_out \n NULLIFY(&i,false); [line 196]\n NULLIFY(&j,false); [line 196]\n NULLIFY(&k,false); [line 196]\n " color="gray"] 227 -> 226 ; -226 [label="226: Call _fun_printf \n n$52=_fun_printf(\"out!\\n\":char *) [line 193]\n REMOVE_TEMPS(n$52); [line 193]\n " shape="box"] +226 [label="226: Call _fun_printf \n n$52=_fun_printf(\"out!\\n\":char *) [line 197]\n REMOVE_TEMPS(n$52); [line 197]\n " shape="box"] 226 -> 225 ; @@ -116,50 +116,50 @@ digraph iCFG { 225 -> 224 ; -224 [label="224: Call _fun_printf \n n$51=_fun_printf(\"terminating!\\n\":char *) [line 195]\n REMOVE_TEMPS(n$51); [line 195]\n " shape="box"] +224 [label="224: Call _fun_printf \n n$51=_fun_printf(\"terminating!\\n\":char *) [line 199]\n REMOVE_TEMPS(n$51); [line 199]\n " shape="box"] 224 -> 223 ; -223 [label="223: Return Stmt \n *&return:int =2 [line 196]\n APPLY_ABSTRACTION; [line 196]\n " shape="box"] +223 [label="223: Return Stmt \n *&return:int =2 [line 200]\n APPLY_ABSTRACTION; [line 200]\n " shape="box"] 223 -> 222 ; 222 [label="222: Exit g8 \n " color=yellow style=filled] -221 [label="221: Start g8\nFormals: q:int \nLocals: i:int j:int k:int v:int \n DECLARE_LOCALS(&return,&i,&j,&k,&v); [line 176]\n NULLIFY(&i,false); [line 176]\n NULLIFY(&j,false); [line 176]\n NULLIFY(&k,false); [line 176]\n NULLIFY(&v,false); [line 176]\n " color=yellow style=filled] +221 [label="221: Start g8\nFormals: q:int \nLocals: i:int j:int k:int v:int \n DECLARE_LOCALS(&return,&i,&j,&k,&v); [line 180]\n NULLIFY(&i,false); [line 180]\n NULLIFY(&j,false); [line 180]\n NULLIFY(&k,false); [line 180]\n NULLIFY(&v,false); [line 180]\n " color=yellow style=filled] 221 -> 252 ; -220 [label="220: DeclStmt \n *&i:int =0 [line 154]\n " shape="box"] +220 [label="220: DeclStmt \n *&i:int =0 [line 158]\n " shape="box"] 220 -> 219 ; -219 [label="219: DeclStmt \n *&j:int =0 [line 154]\n " shape="box"] +219 [label="219: DeclStmt \n *&j:int =0 [line 158]\n " shape="box"] 219 -> 218 ; -218 [label="218: DeclStmt \n *&k:int =0 [line 154]\n APPLY_ABSTRACTION; [line 154]\n " shape="box"] +218 [label="218: DeclStmt \n *&k:int =0 [line 158]\n APPLY_ABSTRACTION; [line 158]\n " shape="box"] 218 -> 200 ; -217 [label="217: DeclStmt \n n$48=*&i:int [line 158]\n n$49=*&j:int [line 158]\n n$50=*&k:int [line 158]\n *&v:int =((n$48 + n$49) + n$50) [line 158]\n REMOVE_TEMPS(n$48,n$49,n$50); [line 158]\n " shape="box"] +217 [label="217: DeclStmt \n n$48=*&i:int [line 162]\n n$49=*&j:int [line 162]\n n$50=*&k:int [line 162]\n *&v:int =((n$48 + n$49) + n$50) [line 162]\n REMOVE_TEMPS(n$48,n$49,n$50); [line 162]\n " shape="box"] 217 -> 213 ; -216 [label="216: Call _fun_printf \n n$47=_fun_printf(\"wow\\n\":char *) [line 162]\n REMOVE_TEMPS(n$47); [line 162]\n " shape="box"] +216 [label="216: Call _fun_printf \n n$47=_fun_printf(\"wow\\n\":char *) [line 166]\n REMOVE_TEMPS(n$47); [line 166]\n " shape="box"] 216 -> 196 ; -215 [label="215: Prune (false branch) \n PRUNE(((n$46 >= 15) == 0), false); [line 159]\n REMOVE_TEMPS(n$46); [line 159]\n " shape="invhouse"] +215 [label="215: Prune (false branch) \n PRUNE(((n$46 >= 15) == 0), false); [line 163]\n REMOVE_TEMPS(n$46); [line 163]\n " shape="invhouse"] 215 -> 212 ; -214 [label="214: Prune (true branch) \n PRUNE(((n$46 >= 15) != 0), true); [line 159]\n REMOVE_TEMPS(n$46); [line 159]\n APPLY_ABSTRACTION; [line 159]\n " shape="invhouse"] +214 [label="214: Prune (true branch) \n PRUNE(((n$46 >= 15) != 0), true); [line 163]\n REMOVE_TEMPS(n$46); [line 163]\n APPLY_ABSTRACTION; [line 163]\n " shape="invhouse"] 214 -> 199 ; -213 [label="213: BinaryOperatorStmt: GE \n n$46=*&v:int [line 159]\n NULLIFY(&v,false); [line 159]\n " shape="box"] +213 [label="213: BinaryOperatorStmt: GE \n n$46=*&v:int [line 163]\n NULLIFY(&v,false); [line 163]\n " shape="box"] 213 -> 214 ; @@ -168,15 +168,15 @@ digraph iCFG { 212 -> 208 ; -211 [label="211: Prune (false branch) \n PRUNE(((n$45 < 10) == 0), false); [line 157]\n REMOVE_TEMPS(n$45); [line 157]\n APPLY_ABSTRACTION; [line 157]\n " shape="invhouse"] +211 [label="211: Prune (false branch) \n PRUNE(((n$45 < 10) == 0), false); [line 161]\n REMOVE_TEMPS(n$45); [line 161]\n APPLY_ABSTRACTION; [line 161]\n " shape="invhouse"] 211 -> 204 ; -210 [label="210: Prune (true branch) \n PRUNE(((n$45 < 10) != 0), true); [line 157]\n REMOVE_TEMPS(n$45); [line 157]\n " shape="invhouse"] +210 [label="210: Prune (true branch) \n PRUNE(((n$45 < 10) != 0), true); [line 161]\n REMOVE_TEMPS(n$45); [line 161]\n " shape="invhouse"] 210 -> 217 ; -209 [label="209: BinaryOperatorStmt: LT \n n$45=*&k:int [line 157]\n " shape="box"] +209 [label="209: BinaryOperatorStmt: LT \n n$45=*&k:int [line 161]\n " shape="box"] 209 -> 210 ; @@ -185,15 +185,15 @@ digraph iCFG { 208 -> 209 ; -207 [label="207: Prune (false branch) \n PRUNE(((n$44 < 10) == 0), false); [line 156]\n REMOVE_TEMPS(n$44); [line 156]\n APPLY_ABSTRACTION; [line 156]\n " shape="invhouse"] +207 [label="207: Prune (false branch) \n PRUNE(((n$44 < 10) == 0), false); [line 160]\n REMOVE_TEMPS(n$44); [line 160]\n APPLY_ABSTRACTION; [line 160]\n " shape="invhouse"] 207 -> 200 ; -206 [label="206: Prune (true branch) \n PRUNE(((n$44 < 10) != 0), true); [line 156]\n REMOVE_TEMPS(n$44); [line 156]\n APPLY_ABSTRACTION; [line 156]\n " shape="invhouse"] +206 [label="206: Prune (true branch) \n PRUNE(((n$44 < 10) != 0), true); [line 160]\n REMOVE_TEMPS(n$44); [line 160]\n APPLY_ABSTRACTION; [line 160]\n " shape="invhouse"] 206 -> 208 ; -205 [label="205: BinaryOperatorStmt: LT \n n$44=*&j:int [line 156]\n " shape="box"] +205 [label="205: BinaryOperatorStmt: LT \n n$44=*&j:int [line 160]\n " shape="box"] 205 -> 206 ; @@ -202,15 +202,15 @@ digraph iCFG { 204 -> 205 ; -203 [label="203: Prune (false branch) \n PRUNE(((n$43 < 10) == 0), false); [line 155]\n REMOVE_TEMPS(n$43); [line 155]\n APPLY_ABSTRACTION; [line 155]\n " shape="invhouse"] +203 [label="203: Prune (false branch) \n PRUNE(((n$43 < 10) == 0), false); [line 159]\n REMOVE_TEMPS(n$43); [line 159]\n APPLY_ABSTRACTION; [line 159]\n " shape="invhouse"] 203 -> 199 ; -202 [label="202: Prune (true branch) \n PRUNE(((n$43 < 10) != 0), true); [line 155]\n REMOVE_TEMPS(n$43); [line 155]\n APPLY_ABSTRACTION; [line 155]\n " shape="invhouse"] +202 [label="202: Prune (true branch) \n PRUNE(((n$43 < 10) != 0), true); [line 159]\n REMOVE_TEMPS(n$43); [line 159]\n APPLY_ABSTRACTION; [line 159]\n " shape="invhouse"] 202 -> 204 ; -201 [label="201: BinaryOperatorStmt: LT \n n$43=*&i:int [line 155]\n " shape="box"] +201 [label="201: BinaryOperatorStmt: LT \n n$43=*&i:int [line 159]\n " shape="box"] 201 -> 202 ; @@ -219,11 +219,11 @@ digraph iCFG { 200 -> 201 ; -199 [label="199: Skip GotoLabel_out \n NULLIFY(&i,false); [line 168]\n NULLIFY(&j,false); [line 168]\n NULLIFY(&k,false); [line 168]\n " color="gray"] +199 [label="199: Skip GotoLabel_out \n NULLIFY(&i,false); [line 172]\n NULLIFY(&j,false); [line 172]\n NULLIFY(&k,false); [line 172]\n " color="gray"] 199 -> 198 ; -198 [label="198: Call _fun_printf \n n$42=_fun_printf(\"out!\\n\":char *) [line 169]\n REMOVE_TEMPS(n$42); [line 169]\n " shape="box"] +198 [label="198: Call _fun_printf \n n$42=_fun_printf(\"out!\\n\":char *) [line 173]\n REMOVE_TEMPS(n$42); [line 173]\n " shape="box"] 198 -> 197 ; @@ -235,50 +235,50 @@ digraph iCFG { 196 -> 195 ; -195 [label="195: Call _fun_printf \n n$41=_fun_printf(\"terminating!\\n\":char *) [line 172]\n REMOVE_TEMPS(n$41); [line 172]\n " shape="box"] +195 [label="195: Call _fun_printf \n n$41=_fun_printf(\"terminating!\\n\":char *) [line 176]\n REMOVE_TEMPS(n$41); [line 176]\n " shape="box"] 195 -> 194 ; -194 [label="194: Return Stmt \n *&return:int =2 [line 173]\n APPLY_ABSTRACTION; [line 173]\n " shape="box"] +194 [label="194: Return Stmt \n *&return:int =2 [line 177]\n APPLY_ABSTRACTION; [line 177]\n " shape="box"] 194 -> 193 ; 193 [label="193: Exit g7 \n " color=yellow style=filled] -192 [label="192: Start g7\nFormals: \nLocals: i:int j:int k:int v:int \n DECLARE_LOCALS(&return,&i,&j,&k,&v); [line 152]\n NULLIFY(&i,false); [line 152]\n NULLIFY(&j,false); [line 152]\n NULLIFY(&k,false); [line 152]\n NULLIFY(&v,false); [line 152]\n " color=yellow style=filled] +192 [label="192: Start g7\nFormals: \nLocals: i:int j:int k:int v:int \n DECLARE_LOCALS(&return,&i,&j,&k,&v); [line 156]\n NULLIFY(&i,false); [line 156]\n NULLIFY(&j,false); [line 156]\n NULLIFY(&k,false); [line 156]\n NULLIFY(&v,false); [line 156]\n " color=yellow style=filled] 192 -> 220 ; -191 [label="191: Call _fun_printf \n n$40=_fun_printf(\"B\\n\":char *) [line 131]\n REMOVE_TEMPS(n$40); [line 131]\n " shape="box"] +191 [label="191: Call _fun_printf \n n$40=_fun_printf(\"B\\n\":char *) [line 135]\n REMOVE_TEMPS(n$40); [line 135]\n " shape="box"] 191 -> 184 ; -190 [label="190: Prune (false branch) \n n$39=*&SIL_temp_conditional___183:int [line 133]\n NULLIFY(&SIL_temp_conditional___183,true); [line 133]\n PRUNE((n$39 == 0), false); [line 133]\n REMOVE_TEMPS(n$39); [line 133]\n " shape="invhouse"] +190 [label="190: Prune (false branch) \n n$39=*&SIL_temp_conditional___183:int [line 137]\n NULLIFY(&SIL_temp_conditional___183,true); [line 137]\n PRUNE((n$39 == 0), false); [line 137]\n REMOVE_TEMPS(n$39); [line 137]\n " shape="invhouse"] 190 -> 182 ; -189 [label="189: Prune (true branch) \n n$39=*&SIL_temp_conditional___183:int [line 133]\n NULLIFY(&SIL_temp_conditional___183,true); [line 133]\n PRUNE((n$39 != 0), true); [line 133]\n REMOVE_TEMPS(n$39); [line 133]\n APPLY_ABSTRACTION; [line 133]\n " shape="invhouse"] +189 [label="189: Prune (true branch) \n n$39=*&SIL_temp_conditional___183:int [line 137]\n NULLIFY(&SIL_temp_conditional___183,true); [line 137]\n PRUNE((n$39 != 0), true); [line 137]\n REMOVE_TEMPS(n$39); [line 137]\n APPLY_ABSTRACTION; [line 137]\n " shape="invhouse"] 189 -> 164 ; -188 [label="188: ConditinalStmt Branch \n DECLARE_LOCALS(&SIL_temp_conditional___183); [line 133]\n *&SIL_temp_conditional___183:int =1 [line 133]\n APPLY_ABSTRACTION; [line 133]\n " shape="box"] +188 [label="188: ConditinalStmt Branch \n DECLARE_LOCALS(&SIL_temp_conditional___183); [line 137]\n *&SIL_temp_conditional___183:int =1 [line 137]\n APPLY_ABSTRACTION; [line 137]\n " shape="box"] 188 -> 183 ; -187 [label="187: ConditinalStmt Branch \n DECLARE_LOCALS(&SIL_temp_conditional___183); [line 133]\n *&SIL_temp_conditional___183:int =0 [line 133]\n APPLY_ABSTRACTION; [line 133]\n " shape="box"] +187 [label="187: ConditinalStmt Branch \n DECLARE_LOCALS(&SIL_temp_conditional___183); [line 137]\n *&SIL_temp_conditional___183:int =0 [line 137]\n APPLY_ABSTRACTION; [line 137]\n " shape="box"] 187 -> 183 ; -186 [label="186: Prune (false branch) \n PRUNE((n$38 == 0), false); [line 133]\n REMOVE_TEMPS(n$38); [line 133]\n " shape="invhouse"] +186 [label="186: Prune (false branch) \n PRUNE((n$38 == 0), false); [line 137]\n REMOVE_TEMPS(n$38); [line 137]\n " shape="invhouse"] 186 -> 188 ; -185 [label="185: Prune (true branch) \n PRUNE((n$38 != 0), true); [line 133]\n REMOVE_TEMPS(n$38); [line 133]\n " shape="invhouse"] +185 [label="185: Prune (true branch) \n PRUNE((n$38 != 0), true); [line 137]\n REMOVE_TEMPS(n$38); [line 137]\n " shape="invhouse"] 185 -> 187 ; -184 [label="184: Call _fun_getValue \n n$38=_fun_getValue() [line 133]\n " shape="box"] +184 [label="184: Call _fun_getValue \n n$38=_fun_getValue() [line 137]\n " shape="box"] 184 -> 185 ; @@ -292,31 +292,31 @@ digraph iCFG { 182 -> 175 ; -181 [label="181: Prune (false branch) \n n$37=*&SIL_temp_conditional___174:int [line 135]\n NULLIFY(&SIL_temp_conditional___174,true); [line 135]\n PRUNE((n$37 == 0), false); [line 135]\n REMOVE_TEMPS(n$37); [line 135]\n " shape="invhouse"] +181 [label="181: Prune (false branch) \n n$37=*&SIL_temp_conditional___174:int [line 139]\n NULLIFY(&SIL_temp_conditional___174,true); [line 139]\n PRUNE((n$37 == 0), false); [line 139]\n REMOVE_TEMPS(n$37); [line 139]\n " shape="invhouse"] 181 -> 173 ; -180 [label="180: Prune (true branch) \n n$37=*&SIL_temp_conditional___174:int [line 135]\n NULLIFY(&SIL_temp_conditional___174,true); [line 135]\n PRUNE((n$37 != 0), true); [line 135]\n REMOVE_TEMPS(n$37); [line 135]\n APPLY_ABSTRACTION; [line 135]\n " shape="invhouse"] +180 [label="180: Prune (true branch) \n n$37=*&SIL_temp_conditional___174:int [line 139]\n NULLIFY(&SIL_temp_conditional___174,true); [line 139]\n PRUNE((n$37 != 0), true); [line 139]\n REMOVE_TEMPS(n$37); [line 139]\n APPLY_ABSTRACTION; [line 139]\n " shape="invhouse"] 180 -> 162 ; -179 [label="179: ConditinalStmt Branch \n DECLARE_LOCALS(&SIL_temp_conditional___174); [line 135]\n *&SIL_temp_conditional___174:int =1 [line 135]\n APPLY_ABSTRACTION; [line 135]\n " shape="box"] +179 [label="179: ConditinalStmt Branch \n DECLARE_LOCALS(&SIL_temp_conditional___174); [line 139]\n *&SIL_temp_conditional___174:int =1 [line 139]\n APPLY_ABSTRACTION; [line 139]\n " shape="box"] 179 -> 174 ; -178 [label="178: ConditinalStmt Branch \n DECLARE_LOCALS(&SIL_temp_conditional___174); [line 135]\n *&SIL_temp_conditional___174:int =0 [line 135]\n APPLY_ABSTRACTION; [line 135]\n " shape="box"] +178 [label="178: ConditinalStmt Branch \n DECLARE_LOCALS(&SIL_temp_conditional___174); [line 139]\n *&SIL_temp_conditional___174:int =0 [line 139]\n APPLY_ABSTRACTION; [line 139]\n " shape="box"] 178 -> 174 ; -177 [label="177: Prune (false branch) \n PRUNE((n$36 == 0), false); [line 135]\n REMOVE_TEMPS(n$36); [line 135]\n " shape="invhouse"] +177 [label="177: Prune (false branch) \n PRUNE((n$36 == 0), false); [line 139]\n REMOVE_TEMPS(n$36); [line 139]\n " shape="invhouse"] 177 -> 179 ; -176 [label="176: Prune (true branch) \n PRUNE((n$36 != 0), true); [line 135]\n REMOVE_TEMPS(n$36); [line 135]\n " shape="invhouse"] +176 [label="176: Prune (true branch) \n PRUNE((n$36 != 0), true); [line 139]\n REMOVE_TEMPS(n$36); [line 139]\n " shape="invhouse"] 176 -> 178 ; -175 [label="175: Call _fun_getValue \n n$36=_fun_getValue() [line 135]\n " shape="box"] +175 [label="175: Call _fun_getValue \n n$36=_fun_getValue() [line 139]\n " shape="box"] 175 -> 176 ; @@ -334,15 +334,15 @@ digraph iCFG { 172 -> 191 ; -171 [label="171: Prune (false branch) \n PRUNE(((n$35 > 1) == 0), false); [line 137]\n REMOVE_TEMPS(n$35); [line 137]\n " shape="invhouse"] +171 [label="171: Prune (false branch) \n PRUNE(((n$35 > 1) == 0), false); [line 141]\n REMOVE_TEMPS(n$35); [line 141]\n " shape="invhouse"] 171 -> 168 ; -170 [label="170: Prune (true branch) \n PRUNE(((n$35 > 1) != 0), true); [line 137]\n REMOVE_TEMPS(n$35); [line 137]\n APPLY_ABSTRACTION; [line 137]\n " shape="invhouse"] +170 [label="170: Prune (true branch) \n PRUNE(((n$35 > 1) != 0), true); [line 141]\n REMOVE_TEMPS(n$35); [line 141]\n APPLY_ABSTRACTION; [line 141]\n " shape="invhouse"] 170 -> 172 ; -169 [label="169: BinaryOperatorStmt: GT \n n$35=_fun_getValue() [line 137]\n " shape="box"] +169 [label="169: BinaryOperatorStmt: GT \n n$35=_fun_getValue() [line 141]\n " shape="box"] 169 -> 170 ; @@ -351,15 +351,15 @@ digraph iCFG { 168 -> 164 ; -167 [label="167: DeclStmt \n *&a:int =2 [line 142]\n NULLIFY(&a,false); [line 142]\n " shape="box"] +167 [label="167: DeclStmt \n *&a:int =2 [line 146]\n NULLIFY(&a,false); [line 146]\n " shape="box"] 167 -> 166 ; -166 [label="166: Call _fun_printf \n n$34=_fun_printf(\"A\\n\":char *) [line 143]\n REMOVE_TEMPS(n$34); [line 143]\n " shape="box"] +166 [label="166: Call _fun_printf \n n$34=_fun_printf(\"A\\n\":char *) [line 147]\n REMOVE_TEMPS(n$34); [line 147]\n " shape="box"] 166 -> 165 ; -165 [label="165: Return Stmt \n *&return:int =1 [line 145]\n APPLY_ABSTRACTION; [line 145]\n " shape="box"] +165 [label="165: Return Stmt \n *&return:int =1 [line 149]\n APPLY_ABSTRACTION; [line 149]\n " shape="box"] 165 -> 161 ; @@ -367,7 +367,7 @@ digraph iCFG { 164 -> 163 ; -163 [label="163: Call _fun_printf \n n$33=_fun_printf(\"exit\\n\":char *) [line 147]\n REMOVE_TEMPS(n$33); [line 147]\n APPLY_ABSTRACTION; [line 147]\n " shape="box"] +163 [label="163: Call _fun_printf \n n$33=_fun_printf(\"exit\\n\":char *) [line 151]\n REMOVE_TEMPS(n$33); [line 151]\n APPLY_ABSTRACTION; [line 151]\n " shape="box"] 163 -> 162 ; @@ -378,39 +378,39 @@ digraph iCFG { 161 [label="161: Exit g6 \n " color=yellow style=filled] -160 [label="160: Start g6\nFormals: \nLocals: a:int \n DECLARE_LOCALS(&return,&a); [line 128]\n NULLIFY(&a,false); [line 128]\n " color=yellow style=filled] +160 [label="160: Start g6\nFormals: \nLocals: a:int \n DECLARE_LOCALS(&return,&a); [line 132]\n NULLIFY(&a,false); [line 132]\n " color=yellow style=filled] 160 -> 172 ; -159 [label="159: Call _fun_printf \n n$32=_fun_printf(\"B\\n\":char *) [line 108]\n REMOVE_TEMPS(n$32); [line 108]\n " shape="box"] +159 [label="159: Call _fun_printf \n n$32=_fun_printf(\"B\\n\":char *) [line 112]\n REMOVE_TEMPS(n$32); [line 112]\n " shape="box"] 159 -> 152 ; -158 [label="158: Prune (false branch) \n n$31=*&SIL_temp_conditional___151:int [line 110]\n NULLIFY(&SIL_temp_conditional___151,true); [line 110]\n PRUNE((n$31 == 0), false); [line 110]\n REMOVE_TEMPS(n$31); [line 110]\n " shape="invhouse"] +158 [label="158: Prune (false branch) \n n$31=*&SIL_temp_conditional___151:int [line 114]\n NULLIFY(&SIL_temp_conditional___151,true); [line 114]\n PRUNE((n$31 == 0), false); [line 114]\n REMOVE_TEMPS(n$31); [line 114]\n " shape="invhouse"] 158 -> 150 ; -157 [label="157: Prune (true branch) \n n$31=*&SIL_temp_conditional___151:int [line 110]\n NULLIFY(&SIL_temp_conditional___151,true); [line 110]\n PRUNE((n$31 != 0), true); [line 110]\n REMOVE_TEMPS(n$31); [line 110]\n APPLY_ABSTRACTION; [line 110]\n " shape="invhouse"] +157 [label="157: Prune (true branch) \n n$31=*&SIL_temp_conditional___151:int [line 114]\n NULLIFY(&SIL_temp_conditional___151,true); [line 114]\n PRUNE((n$31 != 0), true); [line 114]\n REMOVE_TEMPS(n$31); [line 114]\n APPLY_ABSTRACTION; [line 114]\n " shape="invhouse"] 157 -> 132 ; -156 [label="156: ConditinalStmt Branch \n DECLARE_LOCALS(&SIL_temp_conditional___151); [line 110]\n *&SIL_temp_conditional___151:int =1 [line 110]\n APPLY_ABSTRACTION; [line 110]\n " shape="box"] +156 [label="156: ConditinalStmt Branch \n DECLARE_LOCALS(&SIL_temp_conditional___151); [line 114]\n *&SIL_temp_conditional___151:int =1 [line 114]\n APPLY_ABSTRACTION; [line 114]\n " shape="box"] 156 -> 151 ; -155 [label="155: ConditinalStmt Branch \n DECLARE_LOCALS(&SIL_temp_conditional___151); [line 110]\n *&SIL_temp_conditional___151:int =0 [line 110]\n APPLY_ABSTRACTION; [line 110]\n " shape="box"] +155 [label="155: ConditinalStmt Branch \n DECLARE_LOCALS(&SIL_temp_conditional___151); [line 114]\n *&SIL_temp_conditional___151:int =0 [line 114]\n APPLY_ABSTRACTION; [line 114]\n " shape="box"] 155 -> 151 ; -154 [label="154: Prune (false branch) \n PRUNE((n$30 == 0), false); [line 110]\n REMOVE_TEMPS(n$30); [line 110]\n " shape="invhouse"] +154 [label="154: Prune (false branch) \n PRUNE((n$30 == 0), false); [line 114]\n REMOVE_TEMPS(n$30); [line 114]\n " shape="invhouse"] 154 -> 156 ; -153 [label="153: Prune (true branch) \n PRUNE((n$30 != 0), true); [line 110]\n REMOVE_TEMPS(n$30); [line 110]\n " shape="invhouse"] +153 [label="153: Prune (true branch) \n PRUNE((n$30 != 0), true); [line 114]\n REMOVE_TEMPS(n$30); [line 114]\n " shape="invhouse"] 153 -> 155 ; -152 [label="152: Call _fun_getValue \n n$30=_fun_getValue() [line 110]\n " shape="box"] +152 [label="152: Call _fun_getValue \n n$30=_fun_getValue() [line 114]\n " shape="box"] 152 -> 153 ; @@ -424,31 +424,31 @@ digraph iCFG { 150 -> 143 ; -149 [label="149: Prune (false branch) \n n$29=*&SIL_temp_conditional___142:int [line 112]\n NULLIFY(&SIL_temp_conditional___142,true); [line 112]\n PRUNE((n$29 == 0), false); [line 112]\n REMOVE_TEMPS(n$29); [line 112]\n " shape="invhouse"] +149 [label="149: Prune (false branch) \n n$29=*&SIL_temp_conditional___142:int [line 116]\n NULLIFY(&SIL_temp_conditional___142,true); [line 116]\n PRUNE((n$29 == 0), false); [line 116]\n REMOVE_TEMPS(n$29); [line 116]\n " shape="invhouse"] 149 -> 141 ; -148 [label="148: Prune (true branch) \n n$29=*&SIL_temp_conditional___142:int [line 112]\n NULLIFY(&SIL_temp_conditional___142,true); [line 112]\n PRUNE((n$29 != 0), true); [line 112]\n REMOVE_TEMPS(n$29); [line 112]\n APPLY_ABSTRACTION; [line 112]\n " shape="invhouse"] +148 [label="148: Prune (true branch) \n n$29=*&SIL_temp_conditional___142:int [line 116]\n NULLIFY(&SIL_temp_conditional___142,true); [line 116]\n PRUNE((n$29 != 0), true); [line 116]\n REMOVE_TEMPS(n$29); [line 116]\n APPLY_ABSTRACTION; [line 116]\n " shape="invhouse"] 148 -> 130 ; -147 [label="147: ConditinalStmt Branch \n DECLARE_LOCALS(&SIL_temp_conditional___142); [line 112]\n *&SIL_temp_conditional___142:int =1 [line 112]\n APPLY_ABSTRACTION; [line 112]\n " shape="box"] +147 [label="147: ConditinalStmt Branch \n DECLARE_LOCALS(&SIL_temp_conditional___142); [line 116]\n *&SIL_temp_conditional___142:int =1 [line 116]\n APPLY_ABSTRACTION; [line 116]\n " shape="box"] 147 -> 142 ; -146 [label="146: ConditinalStmt Branch \n DECLARE_LOCALS(&SIL_temp_conditional___142); [line 112]\n *&SIL_temp_conditional___142:int =0 [line 112]\n APPLY_ABSTRACTION; [line 112]\n " shape="box"] +146 [label="146: ConditinalStmt Branch \n DECLARE_LOCALS(&SIL_temp_conditional___142); [line 116]\n *&SIL_temp_conditional___142:int =0 [line 116]\n APPLY_ABSTRACTION; [line 116]\n " shape="box"] 146 -> 142 ; -145 [label="145: Prune (false branch) \n PRUNE((n$28 == 0), false); [line 112]\n REMOVE_TEMPS(n$28); [line 112]\n " shape="invhouse"] +145 [label="145: Prune (false branch) \n PRUNE((n$28 == 0), false); [line 116]\n REMOVE_TEMPS(n$28); [line 116]\n " shape="invhouse"] 145 -> 147 ; -144 [label="144: Prune (true branch) \n PRUNE((n$28 != 0), true); [line 112]\n REMOVE_TEMPS(n$28); [line 112]\n " shape="invhouse"] +144 [label="144: Prune (true branch) \n PRUNE((n$28 != 0), true); [line 116]\n REMOVE_TEMPS(n$28); [line 116]\n " shape="invhouse"] 144 -> 146 ; -143 [label="143: Call _fun_getValue \n n$28=_fun_getValue() [line 112]\n " shape="box"] +143 [label="143: Call _fun_getValue \n n$28=_fun_getValue() [line 116]\n " shape="box"] 143 -> 144 ; @@ -466,15 +466,15 @@ digraph iCFG { 140 -> 159 ; -139 [label="139: Prune (false branch) \n PRUNE(((n$27 > 1) == 0), false); [line 114]\n REMOVE_TEMPS(n$27); [line 114]\n " shape="invhouse"] +139 [label="139: Prune (false branch) \n PRUNE(((n$27 > 1) == 0), false); [line 118]\n REMOVE_TEMPS(n$27); [line 118]\n " shape="invhouse"] 139 -> 136 ; -138 [label="138: Prune (true branch) \n PRUNE(((n$27 > 1) != 0), true); [line 114]\n REMOVE_TEMPS(n$27); [line 114]\n APPLY_ABSTRACTION; [line 114]\n " shape="invhouse"] +138 [label="138: Prune (true branch) \n PRUNE(((n$27 > 1) != 0), true); [line 118]\n REMOVE_TEMPS(n$27); [line 118]\n APPLY_ABSTRACTION; [line 118]\n " shape="invhouse"] 138 -> 140 ; -137 [label="137: BinaryOperatorStmt: GT \n n$27=_fun_getValue() [line 114]\n " shape="box"] +137 [label="137: BinaryOperatorStmt: GT \n n$27=_fun_getValue() [line 118]\n " shape="box"] 137 -> 138 ; @@ -483,15 +483,15 @@ digraph iCFG { 136 -> 132 ; -135 [label="135: DeclStmt \n *&a:int =2 [line 119]\n NULLIFY(&a,false); [line 119]\n " shape="box"] +135 [label="135: DeclStmt \n *&a:int =2 [line 123]\n NULLIFY(&a,false); [line 123]\n " shape="box"] 135 -> 134 ; -134 [label="134: Call _fun_printf \n n$26=_fun_printf(\"A\\n\":char *) [line 120]\n REMOVE_TEMPS(n$26); [line 120]\n " shape="box"] +134 [label="134: Call _fun_printf \n n$26=_fun_printf(\"A\\n\":char *) [line 124]\n REMOVE_TEMPS(n$26); [line 124]\n " shape="box"] 134 -> 133 ; -133 [label="133: Return Stmt \n *&return:int =1 [line 121]\n APPLY_ABSTRACTION; [line 121]\n " shape="box"] +133 [label="133: Return Stmt \n *&return:int =1 [line 125]\n APPLY_ABSTRACTION; [line 125]\n " shape="box"] 133 -> 129 ; @@ -499,7 +499,7 @@ digraph iCFG { 132 -> 131 ; -131 [label="131: Call _fun_printf \n n$25=_fun_printf(\"exit\\n\":char *) [line 124]\n REMOVE_TEMPS(n$25); [line 124]\n APPLY_ABSTRACTION; [line 124]\n " shape="box"] +131 [label="131: Call _fun_printf \n n$25=_fun_printf(\"exit\\n\":char *) [line 128]\n REMOVE_TEMPS(n$25); [line 128]\n APPLY_ABSTRACTION; [line 128]\n " shape="box"] 131 -> 130 ; @@ -510,39 +510,39 @@ digraph iCFG { 129 [label="129: Exit g5 \n " color=yellow style=filled] -128 [label="128: Start g5\nFormals: \nLocals: a:int \n DECLARE_LOCALS(&return,&a); [line 105]\n NULLIFY(&a,false); [line 105]\n " color=yellow style=filled] +128 [label="128: Start g5\nFormals: \nLocals: a:int \n DECLARE_LOCALS(&return,&a); [line 109]\n NULLIFY(&a,false); [line 109]\n " color=yellow style=filled] 128 -> 140 ; -127 [label="127: Call _fun_printf \n n$24=_fun_printf(\"B\\n\":char *) [line 86]\n REMOVE_TEMPS(n$24); [line 86]\n " shape="box"] +127 [label="127: Call _fun_printf \n n$24=_fun_printf(\"B\\n\":char *) [line 90]\n REMOVE_TEMPS(n$24); [line 90]\n " shape="box"] 127 -> 120 ; -126 [label="126: Prune (false branch) \n n$23=*&SIL_temp_conditional___119:int [line 88]\n NULLIFY(&SIL_temp_conditional___119,true); [line 88]\n PRUNE((n$23 == 0), false); [line 88]\n REMOVE_TEMPS(n$23); [line 88]\n " shape="invhouse"] +126 [label="126: Prune (false branch) \n n$23=*&SIL_temp_conditional___119:int [line 92]\n NULLIFY(&SIL_temp_conditional___119,true); [line 92]\n PRUNE((n$23 == 0), false); [line 92]\n REMOVE_TEMPS(n$23); [line 92]\n " shape="invhouse"] 126 -> 118 ; -125 [label="125: Prune (true branch) \n n$23=*&SIL_temp_conditional___119:int [line 88]\n NULLIFY(&SIL_temp_conditional___119,true); [line 88]\n PRUNE((n$23 != 0), true); [line 88]\n REMOVE_TEMPS(n$23); [line 88]\n APPLY_ABSTRACTION; [line 88]\n " shape="invhouse"] +125 [label="125: Prune (true branch) \n n$23=*&SIL_temp_conditional___119:int [line 92]\n NULLIFY(&SIL_temp_conditional___119,true); [line 92]\n PRUNE((n$23 != 0), true); [line 92]\n REMOVE_TEMPS(n$23); [line 92]\n APPLY_ABSTRACTION; [line 92]\n " shape="invhouse"] 125 -> 99 ; -124 [label="124: ConditinalStmt Branch \n DECLARE_LOCALS(&SIL_temp_conditional___119); [line 88]\n *&SIL_temp_conditional___119:int =1 [line 88]\n APPLY_ABSTRACTION; [line 88]\n " shape="box"] +124 [label="124: ConditinalStmt Branch \n DECLARE_LOCALS(&SIL_temp_conditional___119); [line 92]\n *&SIL_temp_conditional___119:int =1 [line 92]\n APPLY_ABSTRACTION; [line 92]\n " shape="box"] 124 -> 119 ; -123 [label="123: ConditinalStmt Branch \n DECLARE_LOCALS(&SIL_temp_conditional___119); [line 88]\n *&SIL_temp_conditional___119:int =0 [line 88]\n APPLY_ABSTRACTION; [line 88]\n " shape="box"] +123 [label="123: ConditinalStmt Branch \n DECLARE_LOCALS(&SIL_temp_conditional___119); [line 92]\n *&SIL_temp_conditional___119:int =0 [line 92]\n APPLY_ABSTRACTION; [line 92]\n " shape="box"] 123 -> 119 ; -122 [label="122: Prune (false branch) \n PRUNE((n$22 == 0), false); [line 88]\n REMOVE_TEMPS(n$22); [line 88]\n " shape="invhouse"] +122 [label="122: Prune (false branch) \n PRUNE((n$22 == 0), false); [line 92]\n REMOVE_TEMPS(n$22); [line 92]\n " shape="invhouse"] 122 -> 124 ; -121 [label="121: Prune (true branch) \n PRUNE((n$22 != 0), true); [line 88]\n REMOVE_TEMPS(n$22); [line 88]\n " shape="invhouse"] +121 [label="121: Prune (true branch) \n PRUNE((n$22 != 0), true); [line 92]\n REMOVE_TEMPS(n$22); [line 92]\n " shape="invhouse"] 121 -> 123 ; -120 [label="120: Call _fun_getValue \n n$22=_fun_getValue() [line 88]\n " shape="box"] +120 [label="120: Call _fun_getValue \n n$22=_fun_getValue() [line 92]\n " shape="box"] 120 -> 121 ; @@ -556,31 +556,31 @@ digraph iCFG { 118 -> 111 ; -117 [label="117: Prune (false branch) \n n$21=*&SIL_temp_conditional___110:int [line 90]\n NULLIFY(&SIL_temp_conditional___110,true); [line 90]\n PRUNE((n$21 == 0), false); [line 90]\n REMOVE_TEMPS(n$21); [line 90]\n " shape="invhouse"] +117 [label="117: Prune (false branch) \n n$21=*&SIL_temp_conditional___110:int [line 94]\n NULLIFY(&SIL_temp_conditional___110,true); [line 94]\n PRUNE((n$21 == 0), false); [line 94]\n REMOVE_TEMPS(n$21); [line 94]\n " shape="invhouse"] 117 -> 109 ; -116 [label="116: Prune (true branch) \n n$21=*&SIL_temp_conditional___110:int [line 90]\n NULLIFY(&SIL_temp_conditional___110,true); [line 90]\n PRUNE((n$21 != 0), true); [line 90]\n REMOVE_TEMPS(n$21); [line 90]\n APPLY_ABSTRACTION; [line 90]\n " shape="invhouse"] +116 [label="116: Prune (true branch) \n n$21=*&SIL_temp_conditional___110:int [line 94]\n NULLIFY(&SIL_temp_conditional___110,true); [line 94]\n PRUNE((n$21 != 0), true); [line 94]\n REMOVE_TEMPS(n$21); [line 94]\n APPLY_ABSTRACTION; [line 94]\n " shape="invhouse"] 116 -> 102 ; -115 [label="115: ConditinalStmt Branch \n DECLARE_LOCALS(&SIL_temp_conditional___110); [line 90]\n *&SIL_temp_conditional___110:int =1 [line 90]\n APPLY_ABSTRACTION; [line 90]\n " shape="box"] +115 [label="115: ConditinalStmt Branch \n DECLARE_LOCALS(&SIL_temp_conditional___110); [line 94]\n *&SIL_temp_conditional___110:int =1 [line 94]\n APPLY_ABSTRACTION; [line 94]\n " shape="box"] 115 -> 110 ; -114 [label="114: ConditinalStmt Branch \n DECLARE_LOCALS(&SIL_temp_conditional___110); [line 90]\n *&SIL_temp_conditional___110:int =0 [line 90]\n APPLY_ABSTRACTION; [line 90]\n " shape="box"] +114 [label="114: ConditinalStmt Branch \n DECLARE_LOCALS(&SIL_temp_conditional___110); [line 94]\n *&SIL_temp_conditional___110:int =0 [line 94]\n APPLY_ABSTRACTION; [line 94]\n " shape="box"] 114 -> 110 ; -113 [label="113: Prune (false branch) \n PRUNE((n$20 == 0), false); [line 90]\n REMOVE_TEMPS(n$20); [line 90]\n " shape="invhouse"] +113 [label="113: Prune (false branch) \n PRUNE((n$20 == 0), false); [line 94]\n REMOVE_TEMPS(n$20); [line 94]\n " shape="invhouse"] 113 -> 115 ; -112 [label="112: Prune (true branch) \n PRUNE((n$20 != 0), true); [line 90]\n REMOVE_TEMPS(n$20); [line 90]\n " shape="invhouse"] +112 [label="112: Prune (true branch) \n PRUNE((n$20 != 0), true); [line 94]\n REMOVE_TEMPS(n$20); [line 94]\n " shape="invhouse"] 112 -> 114 ; -111 [label="111: Call _fun_getValue \n n$20=_fun_getValue() [line 90]\n " shape="box"] +111 [label="111: Call _fun_getValue \n n$20=_fun_getValue() [line 94]\n " shape="box"] 111 -> 112 ; @@ -598,15 +598,15 @@ digraph iCFG { 108 -> 127 ; -107 [label="107: Prune (false branch) \n PRUNE(((n$19 > 1) == 0), false); [line 92]\n REMOVE_TEMPS(n$19); [line 92]\n " shape="invhouse"] +107 [label="107: Prune (false branch) \n PRUNE(((n$19 > 1) == 0), false); [line 96]\n REMOVE_TEMPS(n$19); [line 96]\n " shape="invhouse"] 107 -> 104 ; -106 [label="106: Prune (true branch) \n PRUNE(((n$19 > 1) != 0), true); [line 92]\n REMOVE_TEMPS(n$19); [line 92]\n APPLY_ABSTRACTION; [line 92]\n " shape="invhouse"] +106 [label="106: Prune (true branch) \n PRUNE(((n$19 > 1) != 0), true); [line 96]\n REMOVE_TEMPS(n$19); [line 96]\n APPLY_ABSTRACTION; [line 96]\n " shape="invhouse"] 106 -> 108 ; -105 [label="105: BinaryOperatorStmt: GT \n n$19=_fun_getValue() [line 92]\n " shape="box"] +105 [label="105: BinaryOperatorStmt: GT \n n$19=_fun_getValue() [line 96]\n " shape="box"] 105 -> 106 ; @@ -615,7 +615,7 @@ digraph iCFG { 104 -> 103 ; -103 [label="103: Call _fun_printf \n n$18=_fun_printf(\"g4\\n\":char *) [line 94]\n REMOVE_TEMPS(n$18); [line 94]\n APPLY_ABSTRACTION; [line 94]\n " shape="box"] +103 [label="103: Call _fun_printf \n n$18=_fun_printf(\"g4\\n\":char *) [line 98]\n REMOVE_TEMPS(n$18); [line 98]\n APPLY_ABSTRACTION; [line 98]\n " shape="box"] 103 -> 102 ; @@ -623,11 +623,11 @@ digraph iCFG { 102 -> 101 ; -101 [label="101: DeclStmt \n *&a:int =2 [line 97]\n NULLIFY(&a,false); [line 97]\n " shape="box"] +101 [label="101: DeclStmt \n *&a:int =2 [line 101]\n NULLIFY(&a,false); [line 101]\n " shape="box"] 101 -> 100 ; -100 [label="100: Call _fun_printf \n n$17=_fun_printf(\"A\\n\":char *) [line 98]\n REMOVE_TEMPS(n$17); [line 98]\n APPLY_ABSTRACTION; [line 98]\n " shape="box"] +100 [label="100: Call _fun_printf \n n$17=_fun_printf(\"A\\n\":char *) [line 102]\n REMOVE_TEMPS(n$17); [line 102]\n APPLY_ABSTRACTION; [line 102]\n " shape="box"] 100 -> 99 ; @@ -635,50 +635,50 @@ digraph iCFG { 99 -> 98 ; -98 [label="98: Call _fun_printf \n n$16=_fun_printf(\"exit\\n\":char *) [line 101]\n REMOVE_TEMPS(n$16); [line 101]\n " shape="box"] +98 [label="98: Call _fun_printf \n n$16=_fun_printf(\"exit\\n\":char *) [line 105]\n REMOVE_TEMPS(n$16); [line 105]\n " shape="box"] 98 -> 97 ; -97 [label="97: Return Stmt \n *&return:int =1 [line 102]\n APPLY_ABSTRACTION; [line 102]\n " shape="box"] +97 [label="97: Return Stmt \n *&return:int =1 [line 106]\n APPLY_ABSTRACTION; [line 106]\n " shape="box"] 97 -> 96 ; 96 [label="96: Exit g4 \n " color=yellow style=filled] -95 [label="95: Start g4\nFormals: \nLocals: a:int \n DECLARE_LOCALS(&return,&a); [line 83]\n NULLIFY(&a,false); [line 83]\n " color=yellow style=filled] +95 [label="95: Start g4\nFormals: \nLocals: a:int \n DECLARE_LOCALS(&return,&a); [line 87]\n NULLIFY(&a,false); [line 87]\n " color=yellow style=filled] 95 -> 108 ; -94 [label="94: Call _fun_printf \n n$15=_fun_printf(\"B\\n\":char *) [line 63]\n REMOVE_TEMPS(n$15); [line 63]\n " shape="box"] +94 [label="94: Call _fun_printf \n n$15=_fun_printf(\"B\\n\":char *) [line 67]\n REMOVE_TEMPS(n$15); [line 67]\n " shape="box"] 94 -> 87 ; -93 [label="93: Prune (false branch) \n n$14=*&SIL_temp_conditional___86:int [line 65]\n NULLIFY(&SIL_temp_conditional___86,true); [line 65]\n PRUNE((n$14 == 0), false); [line 65]\n REMOVE_TEMPS(n$14); [line 65]\n " shape="invhouse"] +93 [label="93: Prune (false branch) \n n$14=*&SIL_temp_conditional___86:int [line 69]\n NULLIFY(&SIL_temp_conditional___86,true); [line 69]\n PRUNE((n$14 == 0), false); [line 69]\n REMOVE_TEMPS(n$14); [line 69]\n " shape="invhouse"] 93 -> 85 ; -92 [label="92: Prune (true branch) \n n$14=*&SIL_temp_conditional___86:int [line 65]\n NULLIFY(&SIL_temp_conditional___86,true); [line 65]\n PRUNE((n$14 != 0), true); [line 65]\n REMOVE_TEMPS(n$14); [line 65]\n APPLY_ABSTRACTION; [line 65]\n " shape="invhouse"] +92 [label="92: Prune (true branch) \n n$14=*&SIL_temp_conditional___86:int [line 69]\n NULLIFY(&SIL_temp_conditional___86,true); [line 69]\n PRUNE((n$14 != 0), true); [line 69]\n REMOVE_TEMPS(n$14); [line 69]\n APPLY_ABSTRACTION; [line 69]\n " shape="invhouse"] 92 -> 65 ; -91 [label="91: ConditinalStmt Branch \n DECLARE_LOCALS(&SIL_temp_conditional___86); [line 65]\n *&SIL_temp_conditional___86:int =1 [line 65]\n APPLY_ABSTRACTION; [line 65]\n " shape="box"] +91 [label="91: ConditinalStmt Branch \n DECLARE_LOCALS(&SIL_temp_conditional___86); [line 69]\n *&SIL_temp_conditional___86:int =1 [line 69]\n APPLY_ABSTRACTION; [line 69]\n " shape="box"] 91 -> 86 ; -90 [label="90: ConditinalStmt Branch \n DECLARE_LOCALS(&SIL_temp_conditional___86); [line 65]\n *&SIL_temp_conditional___86:int =0 [line 65]\n APPLY_ABSTRACTION; [line 65]\n " shape="box"] +90 [label="90: ConditinalStmt Branch \n DECLARE_LOCALS(&SIL_temp_conditional___86); [line 69]\n *&SIL_temp_conditional___86:int =0 [line 69]\n APPLY_ABSTRACTION; [line 69]\n " shape="box"] 90 -> 86 ; -89 [label="89: Prune (false branch) \n PRUNE((n$13 == 0), false); [line 65]\n REMOVE_TEMPS(n$13); [line 65]\n " shape="invhouse"] +89 [label="89: Prune (false branch) \n PRUNE((n$13 == 0), false); [line 69]\n REMOVE_TEMPS(n$13); [line 69]\n " shape="invhouse"] 89 -> 91 ; -88 [label="88: Prune (true branch) \n PRUNE((n$13 != 0), true); [line 65]\n REMOVE_TEMPS(n$13); [line 65]\n " shape="invhouse"] +88 [label="88: Prune (true branch) \n PRUNE((n$13 != 0), true); [line 69]\n REMOVE_TEMPS(n$13); [line 69]\n " shape="invhouse"] 88 -> 90 ; -87 [label="87: Call _fun_getValue \n n$13=_fun_getValue() [line 65]\n " shape="box"] +87 [label="87: Call _fun_getValue \n n$13=_fun_getValue() [line 69]\n " shape="box"] 87 -> 88 ; @@ -692,31 +692,31 @@ digraph iCFG { 85 -> 78 ; -84 [label="84: Prune (false branch) \n n$12=*&SIL_temp_conditional___77:int [line 67]\n NULLIFY(&SIL_temp_conditional___77,true); [line 67]\n PRUNE((n$12 == 0), false); [line 67]\n REMOVE_TEMPS(n$12); [line 67]\n " shape="invhouse"] +84 [label="84: Prune (false branch) \n n$12=*&SIL_temp_conditional___77:int [line 71]\n NULLIFY(&SIL_temp_conditional___77,true); [line 71]\n PRUNE((n$12 == 0), false); [line 71]\n REMOVE_TEMPS(n$12); [line 71]\n " shape="invhouse"] 84 -> 76 ; -83 [label="83: Prune (true branch) \n n$12=*&SIL_temp_conditional___77:int [line 67]\n NULLIFY(&SIL_temp_conditional___77,true); [line 67]\n PRUNE((n$12 != 0), true); [line 67]\n REMOVE_TEMPS(n$12); [line 67]\n " shape="invhouse"] +83 [label="83: Prune (true branch) \n n$12=*&SIL_temp_conditional___77:int [line 71]\n NULLIFY(&SIL_temp_conditional___77,true); [line 71]\n PRUNE((n$12 != 0), true); [line 71]\n REMOVE_TEMPS(n$12); [line 71]\n " shape="invhouse"] 83 -> 68 ; -82 [label="82: ConditinalStmt Branch \n DECLARE_LOCALS(&SIL_temp_conditional___77); [line 67]\n *&SIL_temp_conditional___77:int =1 [line 67]\n APPLY_ABSTRACTION; [line 67]\n " shape="box"] +82 [label="82: ConditinalStmt Branch \n DECLARE_LOCALS(&SIL_temp_conditional___77); [line 71]\n *&SIL_temp_conditional___77:int =1 [line 71]\n APPLY_ABSTRACTION; [line 71]\n " shape="box"] 82 -> 77 ; -81 [label="81: ConditinalStmt Branch \n DECLARE_LOCALS(&SIL_temp_conditional___77); [line 67]\n *&SIL_temp_conditional___77:int =0 [line 67]\n APPLY_ABSTRACTION; [line 67]\n " shape="box"] +81 [label="81: ConditinalStmt Branch \n DECLARE_LOCALS(&SIL_temp_conditional___77); [line 71]\n *&SIL_temp_conditional___77:int =0 [line 71]\n APPLY_ABSTRACTION; [line 71]\n " shape="box"] 81 -> 77 ; -80 [label="80: Prune (false branch) \n PRUNE((n$11 == 0), false); [line 67]\n REMOVE_TEMPS(n$11); [line 67]\n " shape="invhouse"] +80 [label="80: Prune (false branch) \n PRUNE((n$11 == 0), false); [line 71]\n REMOVE_TEMPS(n$11); [line 71]\n " shape="invhouse"] 80 -> 82 ; -79 [label="79: Prune (true branch) \n PRUNE((n$11 != 0), true); [line 67]\n REMOVE_TEMPS(n$11); [line 67]\n " shape="invhouse"] +79 [label="79: Prune (true branch) \n PRUNE((n$11 != 0), true); [line 71]\n REMOVE_TEMPS(n$11); [line 71]\n " shape="invhouse"] 79 -> 81 ; -78 [label="78: Call _fun_getValue \n n$11=_fun_getValue() [line 67]\n " shape="box"] +78 [label="78: Call _fun_getValue \n n$11=_fun_getValue() [line 71]\n " shape="box"] 78 -> 79 ; @@ -734,15 +734,15 @@ digraph iCFG { 75 -> 94 ; -74 [label="74: Prune (false branch) \n PRUNE(((n$10 > 1) == 0), false); [line 69]\n REMOVE_TEMPS(n$10); [line 69]\n " shape="invhouse"] +74 [label="74: Prune (false branch) \n PRUNE(((n$10 > 1) == 0), false); [line 73]\n REMOVE_TEMPS(n$10); [line 73]\n " shape="invhouse"] 74 -> 71 ; -73 [label="73: Prune (true branch) \n PRUNE(((n$10 > 1) != 0), true); [line 69]\n REMOVE_TEMPS(n$10); [line 69]\n APPLY_ABSTRACTION; [line 69]\n " shape="invhouse"] +73 [label="73: Prune (true branch) \n PRUNE(((n$10 > 1) != 0), true); [line 73]\n REMOVE_TEMPS(n$10); [line 73]\n APPLY_ABSTRACTION; [line 73]\n " shape="invhouse"] 73 -> 75 ; -72 [label="72: BinaryOperatorStmt: GT \n n$10=_fun_getValue() [line 69]\n " shape="box"] +72 [label="72: BinaryOperatorStmt: GT \n n$10=_fun_getValue() [line 73]\n " shape="box"] 72 -> 73 ; @@ -751,11 +751,11 @@ digraph iCFG { 71 -> 70 ; -70 [label="70: Call _fun_printf \n n$9=_fun_printf(\"g3\\n\":char *) [line 71]\n REMOVE_TEMPS(n$9); [line 71]\n " shape="box"] +70 [label="70: Call _fun_printf \n n$9=_fun_printf(\"g3\\n\":char *) [line 75]\n REMOVE_TEMPS(n$9); [line 75]\n " shape="box"] 70 -> 69 ; -69 [label="69: Return Stmt \n *&return:int =0 [line 72]\n APPLY_ABSTRACTION; [line 72]\n " shape="box"] +69 [label="69: Return Stmt \n *&return:int =0 [line 76]\n APPLY_ABSTRACTION; [line 76]\n " shape="box"] 69 -> 62 ; @@ -763,11 +763,11 @@ digraph iCFG { 68 -> 67 ; -67 [label="67: DeclStmt \n *&a:int =2 [line 75]\n NULLIFY(&a,false); [line 75]\n " shape="box"] +67 [label="67: DeclStmt \n *&a:int =2 [line 79]\n NULLIFY(&a,false); [line 79]\n " shape="box"] 67 -> 66 ; -66 [label="66: Call _fun_printf \n n$8=_fun_printf(\"A\\n\":char *) [line 76]\n REMOVE_TEMPS(n$8); [line 76]\n APPLY_ABSTRACTION; [line 76]\n " shape="box"] +66 [label="66: Call _fun_printf \n n$8=_fun_printf(\"A\\n\":char *) [line 80]\n REMOVE_TEMPS(n$8); [line 80]\n APPLY_ABSTRACTION; [line 80]\n " shape="box"] 66 -> 65 ; @@ -775,54 +775,54 @@ digraph iCFG { 65 -> 64 ; -64 [label="64: Call _fun_printf \n n$7=_fun_printf(\"exit\\n\":char *) [line 79]\n REMOVE_TEMPS(n$7); [line 79]\n " shape="box"] +64 [label="64: Call _fun_printf \n n$7=_fun_printf(\"exit\\n\":char *) [line 83]\n REMOVE_TEMPS(n$7); [line 83]\n " shape="box"] 64 -> 63 ; -63 [label="63: Return Stmt \n *&return:int =1 [line 80]\n APPLY_ABSTRACTION; [line 80]\n " shape="box"] +63 [label="63: Return Stmt \n *&return:int =1 [line 84]\n APPLY_ABSTRACTION; [line 84]\n " shape="box"] 63 -> 62 ; 62 [label="62: Exit g3 \n " color=yellow style=filled] -61 [label="61: Start g3\nFormals: \nLocals: a:int \n DECLARE_LOCALS(&return,&a); [line 60]\n NULLIFY(&a,false); [line 60]\n " color=yellow style=filled] +61 [label="61: Start g3\nFormals: \nLocals: a:int \n DECLARE_LOCALS(&return,&a); [line 64]\n NULLIFY(&a,false); [line 64]\n " color=yellow style=filled] 61 -> 75 ; -60 [label="60: DeclStmt \n *&a:int =0 [line 39]\n NULLIFY(&a,false); [line 39]\n APPLY_ABSTRACTION; [line 39]\n " shape="box"] +60 [label="60: DeclStmt \n *&a:int =0 [line 43]\n NULLIFY(&a,false); [line 43]\n APPLY_ABSTRACTION; [line 43]\n " shape="box"] 60 -> 40 ; -59 [label="59: BinaryOperatorStmt: Assign \n *&a:int =1 [line 41]\n NULLIFY(&a,false); [line 41]\n " shape="box"] +59 [label="59: BinaryOperatorStmt: Assign \n *&a:int =1 [line 45]\n NULLIFY(&a,false); [line 45]\n " shape="box"] 59 -> 52 ; -58 [label="58: Prune (false branch) \n n$6=*&SIL_temp_conditional___51:int [line 43]\n NULLIFY(&SIL_temp_conditional___51,true); [line 43]\n PRUNE((n$6 == 0), false); [line 43]\n REMOVE_TEMPS(n$6); [line 43]\n " shape="invhouse"] +58 [label="58: Prune (false branch) \n n$6=*&SIL_temp_conditional___51:int [line 47]\n NULLIFY(&SIL_temp_conditional___51,true); [line 47]\n PRUNE((n$6 == 0), false); [line 47]\n REMOVE_TEMPS(n$6); [line 47]\n " shape="invhouse"] 58 -> 50 ; -57 [label="57: Prune (true branch) \n n$6=*&SIL_temp_conditional___51:int [line 43]\n NULLIFY(&SIL_temp_conditional___51,true); [line 43]\n PRUNE((n$6 != 0), true); [line 43]\n REMOVE_TEMPS(n$6); [line 43]\n " shape="invhouse"] +57 [label="57: Prune (true branch) \n n$6=*&SIL_temp_conditional___51:int [line 47]\n NULLIFY(&SIL_temp_conditional___51,true); [line 47]\n PRUNE((n$6 != 0), true); [line 47]\n REMOVE_TEMPS(n$6); [line 47]\n " shape="invhouse"] 57 -> 31 ; -56 [label="56: ConditinalStmt Branch \n DECLARE_LOCALS(&SIL_temp_conditional___51); [line 43]\n *&SIL_temp_conditional___51:int =1 [line 43]\n APPLY_ABSTRACTION; [line 43]\n " shape="box"] +56 [label="56: ConditinalStmt Branch \n DECLARE_LOCALS(&SIL_temp_conditional___51); [line 47]\n *&SIL_temp_conditional___51:int =1 [line 47]\n APPLY_ABSTRACTION; [line 47]\n " shape="box"] 56 -> 51 ; -55 [label="55: ConditinalStmt Branch \n DECLARE_LOCALS(&SIL_temp_conditional___51); [line 43]\n *&SIL_temp_conditional___51:int =0 [line 43]\n APPLY_ABSTRACTION; [line 43]\n " shape="box"] +55 [label="55: ConditinalStmt Branch \n DECLARE_LOCALS(&SIL_temp_conditional___51); [line 47]\n *&SIL_temp_conditional___51:int =0 [line 47]\n APPLY_ABSTRACTION; [line 47]\n " shape="box"] 55 -> 51 ; -54 [label="54: Prune (false branch) \n PRUNE((n$5 == 0), false); [line 43]\n REMOVE_TEMPS(n$5); [line 43]\n " shape="invhouse"] +54 [label="54: Prune (false branch) \n PRUNE((n$5 == 0), false); [line 47]\n REMOVE_TEMPS(n$5); [line 47]\n " shape="invhouse"] 54 -> 56 ; -53 [label="53: Prune (true branch) \n PRUNE((n$5 != 0), true); [line 43]\n REMOVE_TEMPS(n$5); [line 43]\n " shape="invhouse"] +53 [label="53: Prune (true branch) \n PRUNE((n$5 != 0), true); [line 47]\n REMOVE_TEMPS(n$5); [line 47]\n " shape="invhouse"] 53 -> 55 ; -52 [label="52: Call _fun_getValue \n n$5=_fun_getValue() [line 43]\n " shape="box"] +52 [label="52: Call _fun_getValue \n n$5=_fun_getValue() [line 47]\n " shape="box"] 52 -> 53 ; @@ -836,31 +836,31 @@ digraph iCFG { 50 -> 43 ; -49 [label="49: Prune (false branch) \n n$4=*&SIL_temp_conditional___42:int [line 45]\n NULLIFY(&SIL_temp_conditional___42,true); [line 45]\n PRUNE((n$4 == 0), false); [line 45]\n REMOVE_TEMPS(n$4); [line 45]\n " shape="invhouse"] +49 [label="49: Prune (false branch) \n n$4=*&SIL_temp_conditional___42:int [line 49]\n NULLIFY(&SIL_temp_conditional___42,true); [line 49]\n PRUNE((n$4 == 0), false); [line 49]\n REMOVE_TEMPS(n$4); [line 49]\n " shape="invhouse"] 49 -> 41 ; -48 [label="48: Prune (true branch) \n n$4=*&SIL_temp_conditional___42:int [line 45]\n NULLIFY(&SIL_temp_conditional___42,true); [line 45]\n PRUNE((n$4 != 0), true); [line 45]\n REMOVE_TEMPS(n$4); [line 45]\n " shape="invhouse"] +48 [label="48: Prune (true branch) \n n$4=*&SIL_temp_conditional___42:int [line 49]\n NULLIFY(&SIL_temp_conditional___42,true); [line 49]\n PRUNE((n$4 != 0), true); [line 49]\n REMOVE_TEMPS(n$4); [line 49]\n " shape="invhouse"] 48 -> 34 ; -47 [label="47: ConditinalStmt Branch \n DECLARE_LOCALS(&SIL_temp_conditional___42); [line 45]\n *&SIL_temp_conditional___42:int =1 [line 45]\n APPLY_ABSTRACTION; [line 45]\n " shape="box"] +47 [label="47: ConditinalStmt Branch \n DECLARE_LOCALS(&SIL_temp_conditional___42); [line 49]\n *&SIL_temp_conditional___42:int =1 [line 49]\n APPLY_ABSTRACTION; [line 49]\n " shape="box"] 47 -> 42 ; -46 [label="46: ConditinalStmt Branch \n DECLARE_LOCALS(&SIL_temp_conditional___42); [line 45]\n *&SIL_temp_conditional___42:int =0 [line 45]\n APPLY_ABSTRACTION; [line 45]\n " shape="box"] +46 [label="46: ConditinalStmt Branch \n DECLARE_LOCALS(&SIL_temp_conditional___42); [line 49]\n *&SIL_temp_conditional___42:int =0 [line 49]\n APPLY_ABSTRACTION; [line 49]\n " shape="box"] 46 -> 42 ; -45 [label="45: Prune (false branch) \n PRUNE((n$3 == 0), false); [line 45]\n REMOVE_TEMPS(n$3); [line 45]\n " shape="invhouse"] +45 [label="45: Prune (false branch) \n PRUNE((n$3 == 0), false); [line 49]\n REMOVE_TEMPS(n$3); [line 49]\n " shape="invhouse"] 45 -> 47 ; -44 [label="44: Prune (true branch) \n PRUNE((n$3 != 0), true); [line 45]\n REMOVE_TEMPS(n$3); [line 45]\n " shape="invhouse"] +44 [label="44: Prune (true branch) \n PRUNE((n$3 != 0), true); [line 49]\n REMOVE_TEMPS(n$3); [line 49]\n " shape="invhouse"] 44 -> 46 ; -43 [label="43: Call _fun_getValue \n n$3=_fun_getValue() [line 45]\n " shape="box"] +43 [label="43: Call _fun_getValue \n n$3=_fun_getValue() [line 49]\n " shape="box"] 43 -> 44 ; @@ -878,15 +878,15 @@ digraph iCFG { 40 -> 59 ; -39 [label="39: Prune (false branch) \n PRUNE(((n$2 > 1) == 0), false); [line 47]\n REMOVE_TEMPS(n$2); [line 47]\n " shape="invhouse"] +39 [label="39: Prune (false branch) \n PRUNE(((n$2 > 1) == 0), false); [line 51]\n REMOVE_TEMPS(n$2); [line 51]\n " shape="invhouse"] 39 -> 36 ; -38 [label="38: Prune (true branch) \n PRUNE(((n$2 > 1) != 0), true); [line 47]\n REMOVE_TEMPS(n$2); [line 47]\n APPLY_ABSTRACTION; [line 47]\n " shape="invhouse"] +38 [label="38: Prune (true branch) \n PRUNE(((n$2 > 1) != 0), true); [line 51]\n REMOVE_TEMPS(n$2); [line 51]\n APPLY_ABSTRACTION; [line 51]\n " shape="invhouse"] 38 -> 40 ; -37 [label="37: BinaryOperatorStmt: GT \n n$2=_fun_getValue() [line 47]\n " shape="box"] +37 [label="37: BinaryOperatorStmt: GT \n n$2=_fun_getValue() [line 51]\n " shape="box"] 37 -> 38 ; @@ -895,7 +895,7 @@ digraph iCFG { 36 -> 35 ; -35 [label="35: Return Stmt \n *&return:int =0 [line 49]\n APPLY_ABSTRACTION; [line 49]\n " shape="box"] +35 [label="35: Return Stmt \n *&return:int =0 [line 53]\n APPLY_ABSTRACTION; [line 53]\n " shape="box"] 35 -> 28 ; @@ -903,11 +903,11 @@ digraph iCFG { 34 -> 33 ; -33 [label="33: BinaryOperatorStmt: Assign \n *&a:int =2 [line 52]\n NULLIFY(&a,false); [line 52]\n " shape="box"] +33 [label="33: BinaryOperatorStmt: Assign \n *&a:int =2 [line 56]\n NULLIFY(&a,false); [line 56]\n " shape="box"] 33 -> 32 ; -32 [label="32: Return Stmt \n *&return:int =2 [line 53]\n APPLY_ABSTRACTION; [line 53]\n " shape="box"] +32 [label="32: Return Stmt \n *&return:int =2 [line 57]\n APPLY_ABSTRACTION; [line 57]\n " shape="box"] 32 -> 28 ; @@ -915,34 +915,34 @@ digraph iCFG { 31 -> 30 ; -30 [label="30: BinaryOperatorStmt: Assign \n *&a:int =3 [line 56]\n NULLIFY(&a,false); [line 56]\n " shape="box"] +30 [label="30: BinaryOperatorStmt: Assign \n *&a:int =3 [line 60]\n NULLIFY(&a,false); [line 60]\n " shape="box"] 30 -> 29 ; -29 [label="29: Return Stmt \n *&return:int =1 [line 57]\n APPLY_ABSTRACTION; [line 57]\n " shape="box"] +29 [label="29: Return Stmt \n *&return:int =1 [line 61]\n APPLY_ABSTRACTION; [line 61]\n " shape="box"] 29 -> 28 ; 28 [label="28: Exit g2 \n " color=yellow style=filled] -27 [label="27: Start g2\nFormals: \nLocals: a:int \n DECLARE_LOCALS(&return,&a); [line 37]\n NULLIFY(&a,false); [line 37]\n " color=yellow style=filled] +27 [label="27: Start g2\nFormals: \nLocals: a:int \n DECLARE_LOCALS(&return,&a); [line 41]\n NULLIFY(&a,false); [line 41]\n " color=yellow style=filled] 27 -> 60 ; -26 [label="26: DeclStmt \n *&a:int =0 [line 27]\n NULLIFY(&a,false); [line 27]\n " shape="box"] +26 [label="26: DeclStmt \n *&a:int =0 [line 31]\n NULLIFY(&a,false); [line 31]\n " shape="box"] 26 -> 23 ; -25 [label="25: Prune (false branch) \n PRUNE(((n$1 > 1) == 0), false); [line 28]\n REMOVE_TEMPS(n$1); [line 28]\n " shape="invhouse"] +25 [label="25: Prune (false branch) \n PRUNE(((n$1 > 1) == 0), false); [line 32]\n REMOVE_TEMPS(n$1); [line 32]\n " shape="invhouse"] 25 -> 22 ; -24 [label="24: Prune (true branch) \n PRUNE(((n$1 > 1) != 0), true); [line 28]\n REMOVE_TEMPS(n$1); [line 28]\n " shape="invhouse"] +24 [label="24: Prune (true branch) \n PRUNE(((n$1 > 1) != 0), true); [line 32]\n REMOVE_TEMPS(n$1); [line 32]\n " shape="invhouse"] 24 -> 20 ; -23 [label="23: BinaryOperatorStmt: GT \n n$1=_fun_getValue() [line 28]\n " shape="box"] +23 [label="23: BinaryOperatorStmt: GT \n n$1=_fun_getValue() [line 32]\n " shape="box"] 23 -> 24 ; @@ -951,7 +951,7 @@ digraph iCFG { 22 -> 21 ; -21 [label="21: Return Stmt \n *&return:int =0 [line 30]\n APPLY_ABSTRACTION; [line 30]\n " shape="box"] +21 [label="21: Return Stmt \n *&return:int =0 [line 34]\n APPLY_ABSTRACTION; [line 34]\n " shape="box"] 21 -> 17 ; @@ -959,34 +959,34 @@ digraph iCFG { 20 -> 19 ; -19 [label="19: BinaryOperatorStmt: Assign \n *&a:int =1 [line 33]\n NULLIFY(&a,false); [line 33]\n " shape="box"] +19 [label="19: BinaryOperatorStmt: Assign \n *&a:int =1 [line 37]\n NULLIFY(&a,false); [line 37]\n " shape="box"] 19 -> 18 ; -18 [label="18: Return Stmt \n *&return:int =1 [line 34]\n APPLY_ABSTRACTION; [line 34]\n " shape="box"] +18 [label="18: Return Stmt \n *&return:int =1 [line 38]\n APPLY_ABSTRACTION; [line 38]\n " shape="box"] 18 -> 17 ; 17 [label="17: Exit g1 \n " color=yellow style=filled] -16 [label="16: Start g1\nFormals: \nLocals: a:int \n DECLARE_LOCALS(&return,&a); [line 25]\n NULLIFY(&a,false); [line 25]\n " color=yellow style=filled] +16 [label="16: Start g1\nFormals: \nLocals: a:int \n DECLARE_LOCALS(&return,&a); [line 29]\n NULLIFY(&a,false); [line 29]\n " color=yellow style=filled] 16 -> 26 ; -15 [label="15: DeclStmt \n *&a:int =0 [line 14]\n NULLIFY(&a,false); [line 14]\n " shape="box"] +15 [label="15: DeclStmt \n *&a:int =0 [line 18]\n NULLIFY(&a,false); [line 18]\n " shape="box"] 15 -> 12 ; -14 [label="14: Prune (false branch) \n PRUNE(((n$0 > 1) == 0), false); [line 15]\n REMOVE_TEMPS(n$0); [line 15]\n " shape="invhouse"] +14 [label="14: Prune (false branch) \n PRUNE(((n$0 > 1) == 0), false); [line 19]\n REMOVE_TEMPS(n$0); [line 19]\n " shape="invhouse"] 14 -> 11 ; -13 [label="13: Prune (true branch) \n PRUNE(((n$0 > 1) != 0), true); [line 15]\n REMOVE_TEMPS(n$0); [line 15]\n APPLY_ABSTRACTION; [line 15]\n " shape="invhouse"] +13 [label="13: Prune (true branch) \n PRUNE(((n$0 > 1) != 0), true); [line 19]\n REMOVE_TEMPS(n$0); [line 19]\n APPLY_ABSTRACTION; [line 19]\n " shape="invhouse"] 13 -> 9 ; -12 [label="12: BinaryOperatorStmt: GT \n n$0=_fun_getValue() [line 15]\n " shape="box"] +12 [label="12: BinaryOperatorStmt: GT \n n$0=_fun_getValue() [line 19]\n " shape="box"] 12 -> 13 ; @@ -995,7 +995,7 @@ digraph iCFG { 11 -> 10 ; -10 [label="10: Skip GotoLabel_stepB \n APPLY_ABSTRACTION; [line 18]\n " color="gray"] +10 [label="10: Skip GotoLabel_stepB \n APPLY_ABSTRACTION; [line 22]\n " color="gray"] 10 -> 9 ; @@ -1007,29 +1007,29 @@ digraph iCFG { 8 -> 7 ; -7 [label="7: BinaryOperatorStmt: Assign \n *&a:int =1 [line 21]\n NULLIFY(&a,false); [line 21]\n " shape="box"] +7 [label="7: BinaryOperatorStmt: Assign \n *&a:int =1 [line 25]\n NULLIFY(&a,false); [line 25]\n " shape="box"] 7 -> 6 ; -6 [label="6: Return Stmt \n *&return:int =1 [line 22]\n APPLY_ABSTRACTION; [line 22]\n " shape="box"] +6 [label="6: Return Stmt \n *&return:int =1 [line 26]\n APPLY_ABSTRACTION; [line 26]\n " shape="box"] 6 -> 5 ; 5 [label="5: Exit g0 \n " color=yellow style=filled] -4 [label="4: Start g0\nFormals: \nLocals: a:int \n DECLARE_LOCALS(&return,&a); [line 12]\n NULLIFY(&a,false); [line 12]\n " color=yellow style=filled] +4 [label="4: Start g0\nFormals: \nLocals: a:int \n DECLARE_LOCALS(&return,&a); [line 16]\n NULLIFY(&a,false); [line 16]\n " color=yellow style=filled] 4 -> 15 ; -3 [label="3: Return Stmt \n *&return:int =2 [line 9]\n APPLY_ABSTRACTION; [line 9]\n " shape="box"] +3 [label="3: Return Stmt \n *&return:int =2 [line 13]\n APPLY_ABSTRACTION; [line 13]\n " shape="box"] 3 -> 2 ; 2 [label="2: Exit getValue \n " color=yellow style=filled] -1 [label="1: Start getValue\nFormals: \nLocals: \n DECLARE_LOCALS(&return); [line 8]\n " color=yellow style=filled] +1 [label="1: Start getValue\nFormals: \nLocals: \n DECLARE_LOCALS(&return); [line 12]\n " color=yellow style=filled] 1 -> 3 ; diff --git a/infer/tests/codetoanalyze/c/frontend/initialization/array_initlistexpr.c b/infer/tests/codetoanalyze/c/frontend/initialization/array_initlistexpr.c index 917157ab2..e826d66d0 100644 --- a/infer/tests/codetoanalyze/c/frontend/initialization/array_initlistexpr.c +++ b/infer/tests/codetoanalyze/c/frontend/initialization/array_initlistexpr.c @@ -1,6 +1,10 @@ /* - * Copyright (c) 2013 - Facebook. - * All rights reserved. +* Copyright (c) 2013 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ int main() { diff --git a/infer/tests/codetoanalyze/c/frontend/initialization/array_initlistexpr.dot b/infer/tests/codetoanalyze/c/frontend/initialization/array_initlistexpr.dot index 1ce9edd70..5196aed68 100644 --- a/infer/tests/codetoanalyze/c/frontend/initialization/array_initlistexpr.dot +++ b/infer/tests/codetoanalyze/c/frontend/initialization/array_initlistexpr.dot @@ -1,12 +1,12 @@ digraph iCFG { -3 [label="3: InitListExp \n n$0=*&z:int [line 8]\n *&a[0][0]:int =(n$0 + 1) [line 8]\n *&a[0][1]:int =2 [line 8]\n *&a[0][2]:int =3 [line 8]\n *&a[1][0]:int =5 [line 8]\n *&a[1][1]:int =6 [line 8]\n *&a[1][2]:int =7 [line 8]\n REMOVE_TEMPS(n$0); [line 8]\n NULLIFY(&z,false); [line 8]\n APPLY_ABSTRACTION; [line 8]\n " shape="box"] +3 [label="3: InitListExp \n n$0=*&z:int [line 12]\n *&a[0][0]:int =(n$0 + 1) [line 12]\n *&a[0][1]:int =2 [line 12]\n *&a[0][2]:int =3 [line 12]\n *&a[1][0]:int =5 [line 12]\n *&a[1][1]:int =6 [line 12]\n *&a[1][2]:int =7 [line 12]\n REMOVE_TEMPS(n$0); [line 12]\n NULLIFY(&z,false); [line 12]\n APPLY_ABSTRACTION; [line 12]\n " shape="box"] 3 -> 2 ; 2 [label="2: Exit main \n " color=yellow style=filled] -1 [label="1: Start main\nFormals: \nLocals: z:int a:int [2][3] \n DECLARE_LOCALS(&return,&z,&a); [line 6]\n NULLIFY(&a,false); [line 6]\n " color=yellow style=filled] +1 [label="1: Start main\nFormals: \nLocals: z:int a:int [2][3] \n DECLARE_LOCALS(&return,&z,&a); [line 10]\n NULLIFY(&a,false); [line 10]\n " color=yellow style=filled] 1 -> 3 ; diff --git a/infer/tests/codetoanalyze/c/frontend/initialization/struct_initlistexpr.c b/infer/tests/codetoanalyze/c/frontend/initialization/struct_initlistexpr.c index 13e497829..c3511f294 100644 --- a/infer/tests/codetoanalyze/c/frontend/initialization/struct_initlistexpr.c +++ b/infer/tests/codetoanalyze/c/frontend/initialization/struct_initlistexpr.c @@ -1,6 +1,10 @@ /* - * Copyright (c) 2013 - Facebook. - * All rights reserved. +* Copyright (c) 2013 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ typedef struct Point { diff --git a/infer/tests/codetoanalyze/c/frontend/initialization/struct_initlistexpr.dot b/infer/tests/codetoanalyze/c/frontend/initialization/struct_initlistexpr.dot index f73f06462..afea2d7dc 100644 --- a/infer/tests/codetoanalyze/c/frontend/initialization/struct_initlistexpr.dot +++ b/infer/tests/codetoanalyze/c/frontend/initialization/struct_initlistexpr.dot @@ -1,53 +1,53 @@ digraph iCFG { -14 [label="14: InitListExp \n *&e.doj.date:int =12 [line 37]\n *&e.doj.month:int =3000.500000 [line 37]\n *&e.doj.year:int =12 [line 37]\n *&e.salary:float =12 [line 37]\n *&e.ssn:int =2010 [line 37]\n " shape="box"] +14 [label="14: InitListExp \n *&e.doj.date:int =12 [line 41]\n *&e.doj.month:int =3000.500000 [line 41]\n *&e.doj.year:int =12 [line 41]\n *&e.salary:float =12 [line 41]\n *&e.ssn:int =2010 [line 41]\n " shape="box"] 14 -> 13 ; -13 [label="13: Return Stmt \n n$1=*&e.ssn:int [line 38]\n *&return:int =n$1 [line 38]\n REMOVE_TEMPS(n$1); [line 38]\n NULLIFY(&e,false); [line 38]\n APPLY_ABSTRACTION; [line 38]\n " shape="box"] +13 [label="13: Return Stmt \n n$1=*&e.ssn:int [line 42]\n *&return:int =n$1 [line 42]\n REMOVE_TEMPS(n$1); [line 42]\n NULLIFY(&e,false); [line 42]\n APPLY_ABSTRACTION; [line 42]\n " shape="box"] 13 -> 12 ; 12 [label="12: Exit main2 \n " color=yellow style=filled] -11 [label="11: Start main2\nFormals: \nLocals: e:struct Employee \n DECLARE_LOCALS(&return,&e); [line 36]\n " color=yellow style=filled] +11 [label="11: Start main2\nFormals: \nLocals: e:struct Employee \n DECLARE_LOCALS(&return,&e); [line 40]\n " color=yellow style=filled] 11 -> 14 ; -10 [label="10: InitListExp \n *&p.x:int =4 [line 20]\n *&p.y:int =5 [line 20]\n " shape="box"] +10 [label="10: InitListExp \n *&p.x:int =4 [line 24]\n *&p.y:int =5 [line 24]\n " shape="box"] 10 -> 9 ; -9 [label="9: Return Stmt \n *&return:int =0 [line 21]\n APPLY_ABSTRACTION; [line 21]\n " shape="box"] +9 [label="9: Return Stmt \n *&return:int =0 [line 25]\n APPLY_ABSTRACTION; [line 25]\n " shape="box"] 9 -> 8 ; 8 [label="8: Exit test \n " color=yellow style=filled] -7 [label="7: Start test\nFormals: p:Point *\nLocals: \n DECLARE_LOCALS(&return); [line 19]\n NULLIFY(&p,false); [line 19]\n " color=yellow style=filled] +7 [label="7: Start test\nFormals: p:Point *\nLocals: \n DECLARE_LOCALS(&return); [line 23]\n NULLIFY(&p,false); [line 23]\n " color=yellow style=filled] 7 -> 10 ; -6 [label="6: InitListExp \n n$0=_fun_foo() [line 16]\n *&p.x:int =1 [line 16]\n *&p.y:int =(n$0 + 3) [line 16]\n REMOVE_TEMPS(n$0); [line 16]\n APPLY_ABSTRACTION; [line 16]\n " shape="box"] +6 [label="6: InitListExp \n n$0=_fun_foo() [line 20]\n *&p.x:int =1 [line 20]\n *&p.y:int =(n$0 + 3) [line 20]\n REMOVE_TEMPS(n$0); [line 20]\n APPLY_ABSTRACTION; [line 20]\n " shape="box"] 6 -> 5 ; 5 [label="5: Exit main \n " color=yellow style=filled] -4 [label="4: Start main\nFormals: \nLocals: p:struct Point \n DECLARE_LOCALS(&return,&p); [line 15]\n NULLIFY(&p,false); [line 15]\n " color=yellow style=filled] +4 [label="4: Start main\nFormals: \nLocals: p:struct Point \n DECLARE_LOCALS(&return,&p); [line 19]\n NULLIFY(&p,false); [line 19]\n " color=yellow style=filled] 4 -> 6 ; -3 [label="3: Return Stmt \n *&return:int =5 [line 12]\n APPLY_ABSTRACTION; [line 12]\n " shape="box"] +3 [label="3: Return Stmt \n *&return:int =5 [line 16]\n APPLY_ABSTRACTION; [line 16]\n " shape="box"] 3 -> 2 ; 2 [label="2: Exit foo \n " color=yellow style=filled] -1 [label="1: Start foo\nFormals: \nLocals: \n DECLARE_LOCALS(&return); [line 11]\n " color=yellow style=filled] +1 [label="1: Start foo\nFormals: \nLocals: \n DECLARE_LOCALS(&return); [line 15]\n " color=yellow style=filled] 1 -> 3 ; diff --git a/infer/tests/codetoanalyze/c/frontend/loops/do_while.c b/infer/tests/codetoanalyze/c/frontend/loops/do_while.c index 68604376d..e3c162c97 100644 --- a/infer/tests/codetoanalyze/c/frontend/loops/do_while.c +++ b/infer/tests/codetoanalyze/c/frontend/loops/do_while.c @@ -1,6 +1,10 @@ /* - * Copyright (c) 2013 - Facebook. - * All rights reserved. +* Copyright (c) 2013 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ int main () { diff --git a/infer/tests/codetoanalyze/c/frontend/loops/do_while.dot b/infer/tests/codetoanalyze/c/frontend/loops/do_while.dot index 21bc4f9b4..db0012659 100644 --- a/infer/tests/codetoanalyze/c/frontend/loops/do_while.dot +++ b/infer/tests/codetoanalyze/c/frontend/loops/do_while.dot @@ -1,25 +1,25 @@ digraph iCFG { -10 [label="10: DeclStmt \n *&a:int =10 [line 7]\n NULLIFY(&a,false); [line 7]\n " shape="box"] +10 [label="10: DeclStmt \n *&a:int =10 [line 11]\n NULLIFY(&a,false); [line 11]\n " shape="box"] 10 -> 9 ; -9 [label="9: DeclStmt \n *&b:int =0 [line 8]\n APPLY_ABSTRACTION; [line 8]\n " shape="box"] +9 [label="9: DeclStmt \n *&b:int =0 [line 12]\n APPLY_ABSTRACTION; [line 12]\n " shape="box"] 9 -> 4 ; -8 [label="8: BinaryOperatorStmt: Assign \n *&a:int =1 [line 10]\n NULLIFY(&a,false); [line 10]\n " shape="box"] +8 [label="8: BinaryOperatorStmt: Assign \n *&a:int =1 [line 14]\n NULLIFY(&a,false); [line 14]\n " shape="box"] 8 -> 5 ; -7 [label="7: Prune (false branch) \n PRUNE(((n$0 < 20) == 0), false); [line 11]\n REMOVE_TEMPS(n$0); [line 11]\n " shape="invhouse"] +7 [label="7: Prune (false branch) \n PRUNE(((n$0 < 20) == 0), false); [line 15]\n REMOVE_TEMPS(n$0); [line 15]\n " shape="invhouse"] 7 -> 3 ; -6 [label="6: Prune (true branch) \n PRUNE(((n$0 < 20) != 0), true); [line 11]\n REMOVE_TEMPS(n$0); [line 11]\n APPLY_ABSTRACTION; [line 11]\n " shape="invhouse"] +6 [label="6: Prune (true branch) \n PRUNE(((n$0 < 20) != 0), true); [line 15]\n REMOVE_TEMPS(n$0); [line 15]\n APPLY_ABSTRACTION; [line 15]\n " shape="invhouse"] 6 -> 4 ; -5 [label="5: BinaryOperatorStmt: LT \n n$0=*&b:int [line 11]\n " shape="box"] +5 [label="5: BinaryOperatorStmt: LT \n n$0=*&b:int [line 15]\n " shape="box"] 5 -> 6 ; @@ -28,14 +28,14 @@ digraph iCFG { 4 -> 8 ; -3 [label="3: Return Stmt \n NULLIFY(&b,false); [line 13]\n *&return:int =0 [line 13]\n APPLY_ABSTRACTION; [line 13]\n " shape="box"] +3 [label="3: Return Stmt \n NULLIFY(&b,false); [line 17]\n *&return:int =0 [line 17]\n APPLY_ABSTRACTION; [line 17]\n " shape="box"] 3 -> 2 ; 2 [label="2: Exit main \n " color=yellow style=filled] -1 [label="1: Start main\nFormals: \nLocals: a:int b:int \n DECLARE_LOCALS(&return,&a,&b); [line 6]\n NULLIFY(&a,false); [line 6]\n NULLIFY(&b,false); [line 6]\n " color=yellow style=filled] +1 [label="1: Start main\nFormals: \nLocals: a:int b:int \n DECLARE_LOCALS(&return,&a,&b); [line 10]\n NULLIFY(&a,false); [line 10]\n NULLIFY(&b,false); [line 10]\n " color=yellow style=filled] 1 -> 10 ; diff --git a/infer/tests/codetoanalyze/c/frontend/loops/do_while_condition_side_effects.c b/infer/tests/codetoanalyze/c/frontend/loops/do_while_condition_side_effects.c index 28fec8360..f68338cdc 100644 --- a/infer/tests/codetoanalyze/c/frontend/loops/do_while_condition_side_effects.c +++ b/infer/tests/codetoanalyze/c/frontend/loops/do_while_condition_side_effects.c @@ -1,6 +1,10 @@ /* - * Copyright (c) 2013 - Facebook. - * All rights reserved. +* Copyright (c) 2013 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ int main () { diff --git a/infer/tests/codetoanalyze/c/frontend/loops/do_while_condition_side_effects.dot b/infer/tests/codetoanalyze/c/frontend/loops/do_while_condition_side_effects.dot index 0ecf88488..1dba30529 100644 --- a/infer/tests/codetoanalyze/c/frontend/loops/do_while_condition_side_effects.dot +++ b/infer/tests/codetoanalyze/c/frontend/loops/do_while_condition_side_effects.dot @@ -1,25 +1,25 @@ digraph iCFG { -10 [label="10: DeclStmt \n *&a:int =10 [line 7]\n NULLIFY(&a,false); [line 7]\n " shape="box"] +10 [label="10: DeclStmt \n *&a:int =10 [line 11]\n NULLIFY(&a,false); [line 11]\n " shape="box"] 10 -> 9 ; -9 [label="9: DeclStmt \n *&b:int =0 [line 8]\n NULLIFY(&b,false); [line 8]\n APPLY_ABSTRACTION; [line 8]\n " shape="box"] +9 [label="9: DeclStmt \n *&b:int =0 [line 12]\n NULLIFY(&b,false); [line 12]\n APPLY_ABSTRACTION; [line 12]\n " shape="box"] 9 -> 4 ; -8 [label="8: BinaryOperatorStmt: Assign \n *&a:int =1 [line 10]\n NULLIFY(&a,false); [line 10]\n " shape="box"] +8 [label="8: BinaryOperatorStmt: Assign \n *&a:int =1 [line 14]\n NULLIFY(&a,false); [line 14]\n " shape="box"] 8 -> 5 ; -7 [label="7: Prune (false branch) \n PRUNE((n$0 == 0), false); [line 11]\n REMOVE_TEMPS(n$0); [line 11]\n " shape="invhouse"] +7 [label="7: Prune (false branch) \n PRUNE((n$0 == 0), false); [line 15]\n REMOVE_TEMPS(n$0); [line 15]\n " shape="invhouse"] 7 -> 3 ; -6 [label="6: Prune (true branch) \n PRUNE((n$0 != 0), true); [line 11]\n REMOVE_TEMPS(n$0); [line 11]\n APPLY_ABSTRACTION; [line 11]\n " shape="invhouse"] +6 [label="6: Prune (true branch) \n PRUNE((n$0 != 0), true); [line 15]\n REMOVE_TEMPS(n$0); [line 15]\n APPLY_ABSTRACTION; [line 15]\n " shape="invhouse"] 6 -> 4 ; -5 [label="5: BinaryOperatorStmt: Assign \n *&b:int =40 [line 11]\n n$0=*&b:int [line 11]\n NULLIFY(&b,false); [line 11]\n " shape="box"] +5 [label="5: BinaryOperatorStmt: Assign \n *&b:int =40 [line 15]\n n$0=*&b:int [line 15]\n NULLIFY(&b,false); [line 15]\n " shape="box"] 5 -> 6 ; @@ -28,14 +28,14 @@ digraph iCFG { 4 -> 8 ; -3 [label="3: Return Stmt \n *&return:int =0 [line 13]\n APPLY_ABSTRACTION; [line 13]\n " shape="box"] +3 [label="3: Return Stmt \n *&return:int =0 [line 17]\n APPLY_ABSTRACTION; [line 17]\n " shape="box"] 3 -> 2 ; 2 [label="2: Exit main \n " color=yellow style=filled] -1 [label="1: Start main\nFormals: \nLocals: a:int b:int \n DECLARE_LOCALS(&return,&a,&b); [line 6]\n NULLIFY(&a,false); [line 6]\n NULLIFY(&b,false); [line 6]\n " color=yellow style=filled] +1 [label="1: Start main\nFormals: \nLocals: a:int b:int \n DECLARE_LOCALS(&return,&a,&b); [line 10]\n NULLIFY(&a,false); [line 10]\n NULLIFY(&b,false); [line 10]\n " color=yellow style=filled] 1 -> 10 ; diff --git a/infer/tests/codetoanalyze/c/frontend/loops/do_while_nested.c b/infer/tests/codetoanalyze/c/frontend/loops/do_while_nested.c index 7dd758fc1..8dff4bc42 100644 --- a/infer/tests/codetoanalyze/c/frontend/loops/do_while_nested.c +++ b/infer/tests/codetoanalyze/c/frontend/loops/do_while_nested.c @@ -1,6 +1,10 @@ /* - * Copyright (c) 2013 - Facebook. - * All rights reserved. +* Copyright (c) 2013 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ int main () { diff --git a/infer/tests/codetoanalyze/c/frontend/loops/do_while_nested.dot b/infer/tests/codetoanalyze/c/frontend/loops/do_while_nested.dot index 4619e7499..22d03fbe1 100644 --- a/infer/tests/codetoanalyze/c/frontend/loops/do_while_nested.dot +++ b/infer/tests/codetoanalyze/c/frontend/loops/do_while_nested.dot @@ -1,29 +1,29 @@ digraph iCFG { -15 [label="15: DeclStmt \n *&a:int =10 [line 7]\n NULLIFY(&a,false); [line 7]\n " shape="box"] +15 [label="15: DeclStmt \n *&a:int =10 [line 11]\n NULLIFY(&a,false); [line 11]\n " shape="box"] 15 -> 14 ; -14 [label="14: DeclStmt \n *&b:int =0 [line 8]\n APPLY_ABSTRACTION; [line 8]\n " shape="box"] +14 [label="14: DeclStmt \n *&b:int =0 [line 12]\n APPLY_ABSTRACTION; [line 12]\n " shape="box"] 14 -> 4 ; -13 [label="13: BinaryOperatorStmt: Assign \n *&a:int =1 [line 10]\n NULLIFY(&a,false); [line 10]\n APPLY_ABSTRACTION; [line 10]\n " shape="box"] +13 [label="13: BinaryOperatorStmt: Assign \n *&a:int =1 [line 14]\n NULLIFY(&a,false); [line 14]\n APPLY_ABSTRACTION; [line 14]\n " shape="box"] 13 -> 8 ; -12 [label="12: BinaryOperatorStmt: Assign \n *&a:int =2 [line 12]\n NULLIFY(&a,false); [line 12]\n " shape="box"] +12 [label="12: BinaryOperatorStmt: Assign \n *&a:int =2 [line 16]\n NULLIFY(&a,false); [line 16]\n " shape="box"] 12 -> 9 ; -11 [label="11: Prune (false branch) \n PRUNE(((n$1 < 30) == 0), false); [line 13]\n REMOVE_TEMPS(n$1); [line 13]\n " shape="invhouse"] +11 [label="11: Prune (false branch) \n PRUNE(((n$1 < 30) == 0), false); [line 17]\n REMOVE_TEMPS(n$1); [line 17]\n " shape="invhouse"] 11 -> 5 ; -10 [label="10: Prune (true branch) \n PRUNE(((n$1 < 30) != 0), true); [line 13]\n REMOVE_TEMPS(n$1); [line 13]\n APPLY_ABSTRACTION; [line 13]\n " shape="invhouse"] +10 [label="10: Prune (true branch) \n PRUNE(((n$1 < 30) != 0), true); [line 17]\n REMOVE_TEMPS(n$1); [line 17]\n APPLY_ABSTRACTION; [line 17]\n " shape="invhouse"] 10 -> 8 ; -9 [label="9: BinaryOperatorStmt: LT \n n$1=*&b:int [line 13]\n " shape="box"] +9 [label="9: BinaryOperatorStmt: LT \n n$1=*&b:int [line 17]\n " shape="box"] 9 -> 10 ; @@ -32,15 +32,15 @@ digraph iCFG { 8 -> 12 ; -7 [label="7: Prune (false branch) \n PRUNE(((n$0 < 20) == 0), false); [line 14]\n REMOVE_TEMPS(n$0); [line 14]\n " shape="invhouse"] +7 [label="7: Prune (false branch) \n PRUNE(((n$0 < 20) == 0), false); [line 18]\n REMOVE_TEMPS(n$0); [line 18]\n " shape="invhouse"] 7 -> 3 ; -6 [label="6: Prune (true branch) \n PRUNE(((n$0 < 20) != 0), true); [line 14]\n REMOVE_TEMPS(n$0); [line 14]\n APPLY_ABSTRACTION; [line 14]\n " shape="invhouse"] +6 [label="6: Prune (true branch) \n PRUNE(((n$0 < 20) != 0), true); [line 18]\n REMOVE_TEMPS(n$0); [line 18]\n APPLY_ABSTRACTION; [line 18]\n " shape="invhouse"] 6 -> 4 ; -5 [label="5: BinaryOperatorStmt: LT \n n$0=*&b:int [line 14]\n " shape="box"] +5 [label="5: BinaryOperatorStmt: LT \n n$0=*&b:int [line 18]\n " shape="box"] 5 -> 6 ; @@ -49,14 +49,14 @@ digraph iCFG { 4 -> 13 ; -3 [label="3: Return Stmt \n NULLIFY(&b,false); [line 16]\n *&return:int =0 [line 16]\n APPLY_ABSTRACTION; [line 16]\n " shape="box"] +3 [label="3: Return Stmt \n NULLIFY(&b,false); [line 20]\n *&return:int =0 [line 20]\n APPLY_ABSTRACTION; [line 20]\n " shape="box"] 3 -> 2 ; 2 [label="2: Exit main \n " color=yellow style=filled] -1 [label="1: Start main\nFormals: \nLocals: a:int b:int \n DECLARE_LOCALS(&return,&a,&b); [line 6]\n NULLIFY(&a,false); [line 6]\n NULLIFY(&b,false); [line 6]\n " color=yellow style=filled] +1 [label="1: Start main\nFormals: \nLocals: a:int b:int \n DECLARE_LOCALS(&return,&a,&b); [line 10]\n NULLIFY(&a,false); [line 10]\n NULLIFY(&b,false); [line 10]\n " color=yellow style=filled] 1 -> 15 ; diff --git a/infer/tests/codetoanalyze/c/frontend/loops/for_condition_side_effects.c b/infer/tests/codetoanalyze/c/frontend/loops/for_condition_side_effects.c index 965aff4d0..b6b7bfe9e 100644 --- a/infer/tests/codetoanalyze/c/frontend/loops/for_condition_side_effects.c +++ b/infer/tests/codetoanalyze/c/frontend/loops/for_condition_side_effects.c @@ -1,6 +1,10 @@ /* - * Copyright (c) 2013 - Facebook. - * All rights reserved. +* Copyright (c) 2013 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ int main() { diff --git a/infer/tests/codetoanalyze/c/frontend/loops/for_condition_side_effects.dot b/infer/tests/codetoanalyze/c/frontend/loops/for_condition_side_effects.dot index 89912ac44..4e5e55190 100644 --- a/infer/tests/codetoanalyze/c/frontend/loops/for_condition_side_effects.dot +++ b/infer/tests/codetoanalyze/c/frontend/loops/for_condition_side_effects.dot @@ -1,34 +1,34 @@ digraph iCFG { -12 [label="12: DeclStmt \n *&j:int =0 [line 7]\n " shape="box"] +12 [label="12: DeclStmt \n *&j:int =0 [line 11]\n " shape="box"] 12 -> 11 ; -11 [label="11: DeclStmt \n *&i:int =0 [line 8]\n " shape="box"] +11 [label="11: DeclStmt \n *&i:int =0 [line 12]\n " shape="box"] 11 -> 5 ; -10 [label="10: ComppoundAssignStmt \n n$2=*&j:int [line 10]\n n$3=*&j:int [line 10]\n *&j:int =(n$3 + n$2) [line 10]\n REMOVE_TEMPS(n$2,n$3); [line 10]\n " shape="box"] +10 [label="10: ComppoundAssignStmt \n n$2=*&j:int [line 14]\n n$3=*&j:int [line 14]\n *&j:int =(n$3 + n$2) [line 14]\n REMOVE_TEMPS(n$2,n$3); [line 14]\n " shape="box"] 10 -> 6 ; -9 [label="9: Prune (false branch) \n PRUNE((n$1 == 0), false); [line 9]\n REMOVE_TEMPS(n$1); [line 9]\n " shape="invhouse"] +9 [label="9: Prune (false branch) \n PRUNE((n$1 == 0), false); [line 13]\n REMOVE_TEMPS(n$1); [line 13]\n " shape="invhouse"] 9 -> 3 ; -8 [label="8: Prune (true branch) \n PRUNE((n$1 != 0), true); [line 9]\n REMOVE_TEMPS(n$1); [line 9]\n " shape="invhouse"] +8 [label="8: Prune (true branch) \n PRUNE((n$1 != 0), true); [line 13]\n REMOVE_TEMPS(n$1); [line 13]\n " shape="invhouse"] 8 -> 10 ; -7 [label="7: BinaryOperatorStmt: Assign \n *&b:int =10 [line 9]\n n$1=*&b:int [line 9]\n NULLIFY(&b,false); [line 9]\n " shape="box"] +7 [label="7: BinaryOperatorStmt: Assign \n *&b:int =10 [line 13]\n n$1=*&b:int [line 13]\n NULLIFY(&b,false); [line 13]\n " shape="box"] 7 -> 8 ; 7 -> 9 ; -6 [label="6: UnaryOperator \n n$0=*&i:int [line 9]\n *&i:int =(n$0 + 1) [line 9]\n REMOVE_TEMPS(n$0); [line 9]\n APPLY_ABSTRACTION; [line 9]\n " shape="box"] +6 [label="6: UnaryOperator \n n$0=*&i:int [line 13]\n *&i:int =(n$0 + 1) [line 13]\n REMOVE_TEMPS(n$0); [line 13]\n APPLY_ABSTRACTION; [line 13]\n " shape="box"] 6 -> 4 ; -5 [label="5: DeclStmt \n *&b:int =3 [line 9]\n NULLIFY(&b,false); [line 9]\n APPLY_ABSTRACTION; [line 9]\n " shape="box"] +5 [label="5: DeclStmt \n *&b:int =3 [line 13]\n NULLIFY(&b,false); [line 13]\n APPLY_ABSTRACTION; [line 13]\n " shape="box"] 5 -> 4 ; @@ -36,14 +36,14 @@ digraph iCFG { 4 -> 7 ; -3 [label="3: Return Stmt \n NULLIFY(&i,false); [line 12]\n NULLIFY(&j,false); [line 12]\n *&return:int =0 [line 12]\n APPLY_ABSTRACTION; [line 12]\n " shape="box"] +3 [label="3: Return Stmt \n NULLIFY(&i,false); [line 16]\n NULLIFY(&j,false); [line 16]\n *&return:int =0 [line 16]\n APPLY_ABSTRACTION; [line 16]\n " shape="box"] 3 -> 2 ; 2 [label="2: Exit main \n " color=yellow style=filled] -1 [label="1: Start main\nFormals: \nLocals: j:int i:int b:int \n DECLARE_LOCALS(&return,&j,&i,&b); [line 6]\n NULLIFY(&b,false); [line 6]\n NULLIFY(&i,false); [line 6]\n NULLIFY(&j,false); [line 6]\n " color=yellow style=filled] +1 [label="1: Start main\nFormals: \nLocals: j:int i:int b:int \n DECLARE_LOCALS(&return,&j,&i,&b); [line 10]\n NULLIFY(&b,false); [line 10]\n NULLIFY(&i,false); [line 10]\n NULLIFY(&j,false); [line 10]\n " color=yellow style=filled] 1 -> 12 ; diff --git a/infer/tests/codetoanalyze/c/frontend/loops/for_nested.c b/infer/tests/codetoanalyze/c/frontend/loops/for_nested.c index c6d8085a1..d94eadb3a 100644 --- a/infer/tests/codetoanalyze/c/frontend/loops/for_nested.c +++ b/infer/tests/codetoanalyze/c/frontend/loops/for_nested.c @@ -1,6 +1,10 @@ /* - * Copyright (c) 2013 - Facebook. - * All rights reserved. +* Copyright (c) 2013 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ int main() { diff --git a/infer/tests/codetoanalyze/c/frontend/loops/for_nested.dot b/infer/tests/codetoanalyze/c/frontend/loops/for_nested.dot index cc71f45f1..3f0355e9d 100644 --- a/infer/tests/codetoanalyze/c/frontend/loops/for_nested.dot +++ b/infer/tests/codetoanalyze/c/frontend/loops/for_nested.dot @@ -1,30 +1,30 @@ digraph iCFG { -17 [label="17: DeclStmt \n *&k:int =0 [line 7]\n " shape="box"] +17 [label="17: DeclStmt \n *&k:int =0 [line 11]\n " shape="box"] 17 -> 5 ; -16 [label="16: BinaryOperatorStmt: Assign \n n$5=*&k:int [line 10]\n n$6=*&i:int [line 10]\n *&k:int =(n$5 + n$6) [line 10]\n REMOVE_TEMPS(n$5,n$6); [line 10]\n " shape="box"] +16 [label="16: BinaryOperatorStmt: Assign \n n$5=*&k:int [line 14]\n n$6=*&i:int [line 14]\n *&k:int =(n$5 + n$6) [line 14]\n REMOVE_TEMPS(n$5,n$6); [line 14]\n " shape="box"] 16 -> 12 ; -15 [label="15: Prune (false branch) \n PRUNE(((n$4 < 10) == 0), false); [line 9]\n REMOVE_TEMPS(n$4); [line 9]\n " shape="invhouse"] +15 [label="15: Prune (false branch) \n PRUNE(((n$4 < 10) == 0), false); [line 13]\n REMOVE_TEMPS(n$4); [line 13]\n " shape="invhouse"] 15 -> 6 ; -14 [label="14: Prune (true branch) \n PRUNE(((n$4 < 10) != 0), true); [line 9]\n REMOVE_TEMPS(n$4); [line 9]\n " shape="invhouse"] +14 [label="14: Prune (true branch) \n PRUNE(((n$4 < 10) != 0), true); [line 13]\n REMOVE_TEMPS(n$4); [line 13]\n " shape="invhouse"] 14 -> 16 ; -13 [label="13: BinaryOperatorStmt: LT \n n$4=*&j:int [line 9]\n " shape="box"] +13 [label="13: BinaryOperatorStmt: LT \n n$4=*&j:int [line 13]\n " shape="box"] 13 -> 14 ; 13 -> 15 ; -12 [label="12: UnaryOperator \n n$3=*&j:int [line 9]\n *&j:int =(n$3 + 1) [line 9]\n REMOVE_TEMPS(n$3); [line 9]\n APPLY_ABSTRACTION; [line 9]\n " shape="box"] +12 [label="12: UnaryOperator \n n$3=*&j:int [line 13]\n *&j:int =(n$3 + 1) [line 13]\n REMOVE_TEMPS(n$3); [line 13]\n APPLY_ABSTRACTION; [line 13]\n " shape="box"] 12 -> 10 ; -11 [label="11: DeclStmt \n *&j:int =0 [line 9]\n APPLY_ABSTRACTION; [line 9]\n " shape="box"] +11 [label="11: DeclStmt \n *&j:int =0 [line 13]\n APPLY_ABSTRACTION; [line 13]\n " shape="box"] 11 -> 10 ; @@ -32,24 +32,24 @@ digraph iCFG { 10 -> 13 ; -9 [label="9: Prune (false branch) \n PRUNE(((n$2 < 10) == 0), false); [line 8]\n REMOVE_TEMPS(n$2); [line 8]\n " shape="invhouse"] +9 [label="9: Prune (false branch) \n PRUNE(((n$2 < 10) == 0), false); [line 12]\n REMOVE_TEMPS(n$2); [line 12]\n " shape="invhouse"] 9 -> 3 ; -8 [label="8: Prune (true branch) \n PRUNE(((n$2 < 10) != 0), true); [line 8]\n REMOVE_TEMPS(n$2); [line 8]\n " shape="invhouse"] +8 [label="8: Prune (true branch) \n PRUNE(((n$2 < 10) != 0), true); [line 12]\n REMOVE_TEMPS(n$2); [line 12]\n " shape="invhouse"] 8 -> 11 ; -7 [label="7: BinaryOperatorStmt: LT \n n$2=*&i:int [line 8]\n " shape="box"] +7 [label="7: BinaryOperatorStmt: LT \n n$2=*&i:int [line 12]\n " shape="box"] 7 -> 8 ; 7 -> 9 ; -6 [label="6: UnaryOperator \n NULLIFY(&j,false); [line 8]\n n$1=*&i:int [line 8]\n *&i:int =(n$1 + 1) [line 8]\n REMOVE_TEMPS(n$1); [line 8]\n APPLY_ABSTRACTION; [line 8]\n " shape="box"] +6 [label="6: UnaryOperator \n NULLIFY(&j,false); [line 12]\n n$1=*&i:int [line 12]\n *&i:int =(n$1 + 1) [line 12]\n REMOVE_TEMPS(n$1); [line 12]\n APPLY_ABSTRACTION; [line 12]\n " shape="box"] 6 -> 4 ; -5 [label="5: DeclStmt \n *&i:int =0 [line 8]\n APPLY_ABSTRACTION; [line 8]\n " shape="box"] +5 [label="5: DeclStmt \n *&i:int =0 [line 12]\n APPLY_ABSTRACTION; [line 12]\n " shape="box"] 5 -> 4 ; @@ -57,14 +57,14 @@ digraph iCFG { 4 -> 7 ; -3 [label="3: Return Stmt \n NULLIFY(&i,false); [line 13]\n n$0=*&k:int [line 13]\n *&return:int =n$0 [line 13]\n REMOVE_TEMPS(n$0); [line 13]\n NULLIFY(&k,false); [line 13]\n APPLY_ABSTRACTION; [line 13]\n " shape="box"] +3 [label="3: Return Stmt \n NULLIFY(&i,false); [line 17]\n n$0=*&k:int [line 17]\n *&return:int =n$0 [line 17]\n REMOVE_TEMPS(n$0); [line 17]\n NULLIFY(&k,false); [line 17]\n APPLY_ABSTRACTION; [line 17]\n " shape="box"] 3 -> 2 ; 2 [label="2: Exit main \n " color=yellow style=filled] -1 [label="1: Start main\nFormals: \nLocals: k:int i:int j:int \n DECLARE_LOCALS(&return,&k,&i,&j); [line 6]\n NULLIFY(&i,false); [line 6]\n NULLIFY(&j,false); [line 6]\n NULLIFY(&k,false); [line 6]\n " color=yellow style=filled] +1 [label="1: Start main\nFormals: \nLocals: k:int i:int j:int \n DECLARE_LOCALS(&return,&k,&i,&j); [line 10]\n NULLIFY(&i,false); [line 10]\n NULLIFY(&j,false); [line 10]\n NULLIFY(&k,false); [line 10]\n " color=yellow style=filled] 1 -> 17 ; diff --git a/infer/tests/codetoanalyze/c/frontend/loops/for_no_condition.c b/infer/tests/codetoanalyze/c/frontend/loops/for_no_condition.c index f2cb58e17..54f9a1666 100644 --- a/infer/tests/codetoanalyze/c/frontend/loops/for_no_condition.c +++ b/infer/tests/codetoanalyze/c/frontend/loops/for_no_condition.c @@ -1,6 +1,10 @@ /* - * Copyright (c) 2013 - Facebook. - * All rights reserved. +* Copyright (c) 2013 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ int main() { diff --git a/infer/tests/codetoanalyze/c/frontend/loops/for_no_condition.dot b/infer/tests/codetoanalyze/c/frontend/loops/for_no_condition.dot index d588d15c1..b703449af 100644 --- a/infer/tests/codetoanalyze/c/frontend/loops/for_no_condition.dot +++ b/infer/tests/codetoanalyze/c/frontend/loops/for_no_condition.dot @@ -1,25 +1,25 @@ digraph iCFG { -10 [label="10: DeclStmt \n *&j:int =0 [line 7]\n " shape="box"] +10 [label="10: DeclStmt \n *&j:int =0 [line 11]\n " shape="box"] 10 -> 5 ; -9 [label="9: ComppoundAssignStmt \n n$1=*&j:int [line 9]\n n$2=*&j:int [line 9]\n *&j:int =(n$2 + n$1) [line 9]\n REMOVE_TEMPS(n$1,n$2); [line 9]\n " shape="box"] +9 [label="9: ComppoundAssignStmt \n n$1=*&j:int [line 13]\n n$2=*&j:int [line 13]\n *&j:int =(n$2 + n$1) [line 13]\n REMOVE_TEMPS(n$1,n$2); [line 13]\n " shape="box"] 9 -> 6 ; -8 [label="8: Prune (false branch) \n PRUNE((1 == 0), false); [line 8]\n " shape="invhouse"] +8 [label="8: Prune (false branch) \n PRUNE((1 == 0), false); [line 12]\n " shape="invhouse"] 8 -> 3 ; -7 [label="7: Prune (true branch) \n PRUNE((1 != 0), true); [line 8]\n " shape="invhouse"] +7 [label="7: Prune (true branch) \n PRUNE((1 != 0), true); [line 12]\n " shape="invhouse"] 7 -> 9 ; -6 [label="6: UnaryOperator \n n$0=*&b:int [line 8]\n *&b:int =(n$0 + 1) [line 8]\n REMOVE_TEMPS(n$0); [line 8]\n APPLY_ABSTRACTION; [line 8]\n " shape="box"] +6 [label="6: UnaryOperator \n n$0=*&b:int [line 12]\n *&b:int =(n$0 + 1) [line 12]\n REMOVE_TEMPS(n$0); [line 12]\n APPLY_ABSTRACTION; [line 12]\n " shape="box"] 6 -> 4 ; -5 [label="5: DeclStmt \n *&b:int =0 [line 8]\n APPLY_ABSTRACTION; [line 8]\n " shape="box"] +5 [label="5: DeclStmt \n *&b:int =0 [line 12]\n APPLY_ABSTRACTION; [line 12]\n " shape="box"] 5 -> 4 ; @@ -28,14 +28,14 @@ digraph iCFG { 4 -> 7 ; 4 -> 8 ; -3 [label="3: Return Stmt \n NULLIFY(&b,false); [line 11]\n NULLIFY(&j,false); [line 11]\n *&return:int =0 [line 11]\n APPLY_ABSTRACTION; [line 11]\n " shape="box"] +3 [label="3: Return Stmt \n NULLIFY(&b,false); [line 15]\n NULLIFY(&j,false); [line 15]\n *&return:int =0 [line 15]\n APPLY_ABSTRACTION; [line 15]\n " shape="box"] 3 -> 2 ; 2 [label="2: Exit main \n " color=yellow style=filled] -1 [label="1: Start main\nFormals: \nLocals: j:int b:int \n DECLARE_LOCALS(&return,&j,&b); [line 6]\n NULLIFY(&b,false); [line 6]\n NULLIFY(&j,false); [line 6]\n " color=yellow style=filled] +1 [label="1: Start main\nFormals: \nLocals: j:int b:int \n DECLARE_LOCALS(&return,&j,&b); [line 10]\n NULLIFY(&b,false); [line 10]\n NULLIFY(&j,false); [line 10]\n " color=yellow style=filled] 1 -> 10 ; diff --git a/infer/tests/codetoanalyze/c/frontend/loops/for_no_condition_incr.c b/infer/tests/codetoanalyze/c/frontend/loops/for_no_condition_incr.c index 17beccc11..cb021c448 100644 --- a/infer/tests/codetoanalyze/c/frontend/loops/for_no_condition_incr.c +++ b/infer/tests/codetoanalyze/c/frontend/loops/for_no_condition_incr.c @@ -1,6 +1,10 @@ /* - * Copyright (c) 2013 - Facebook. - * All rights reserved. +* Copyright (c) 2013 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ int main() { diff --git a/infer/tests/codetoanalyze/c/frontend/loops/for_no_condition_incr.dot b/infer/tests/codetoanalyze/c/frontend/loops/for_no_condition_incr.dot index 10ce43081..f4c1516be 100644 --- a/infer/tests/codetoanalyze/c/frontend/loops/for_no_condition_incr.dot +++ b/infer/tests/codetoanalyze/c/frontend/loops/for_no_condition_incr.dot @@ -1,21 +1,21 @@ digraph iCFG { -9 [label="9: DeclStmt \n *&j:int =0 [line 7]\n " shape="box"] +9 [label="9: DeclStmt \n *&j:int =0 [line 11]\n " shape="box"] 9 -> 5 ; -8 [label="8: ComppoundAssignStmt \n n$0=*&j:int [line 9]\n n$1=*&j:int [line 9]\n *&j:int =(n$1 + n$0) [line 9]\n REMOVE_TEMPS(n$0,n$1); [line 9]\n APPLY_ABSTRACTION; [line 9]\n " shape="box"] +8 [label="8: ComppoundAssignStmt \n n$0=*&j:int [line 13]\n n$1=*&j:int [line 13]\n *&j:int =(n$1 + n$0) [line 13]\n REMOVE_TEMPS(n$0,n$1); [line 13]\n APPLY_ABSTRACTION; [line 13]\n " shape="box"] 8 -> 4 ; -7 [label="7: Prune (false branch) \n PRUNE((1 == 0), false); [line 8]\n " shape="invhouse"] +7 [label="7: Prune (false branch) \n PRUNE((1 == 0), false); [line 12]\n " shape="invhouse"] 7 -> 3 ; -6 [label="6: Prune (true branch) \n PRUNE((1 != 0), true); [line 8]\n " shape="invhouse"] +6 [label="6: Prune (true branch) \n PRUNE((1 != 0), true); [line 12]\n " shape="invhouse"] 6 -> 8 ; -5 [label="5: DeclStmt \n *&b:int =0 [line 8]\n NULLIFY(&b,false); [line 8]\n APPLY_ABSTRACTION; [line 8]\n " shape="box"] +5 [label="5: DeclStmt \n *&b:int =0 [line 12]\n NULLIFY(&b,false); [line 12]\n APPLY_ABSTRACTION; [line 12]\n " shape="box"] 5 -> 4 ; @@ -24,14 +24,14 @@ digraph iCFG { 4 -> 6 ; 4 -> 7 ; -3 [label="3: Return Stmt \n NULLIFY(&j,false); [line 11]\n *&return:int =0 [line 11]\n APPLY_ABSTRACTION; [line 11]\n " shape="box"] +3 [label="3: Return Stmt \n NULLIFY(&j,false); [line 15]\n *&return:int =0 [line 15]\n APPLY_ABSTRACTION; [line 15]\n " shape="box"] 3 -> 2 ; 2 [label="2: Exit main \n " color=yellow style=filled] -1 [label="1: Start main\nFormals: \nLocals: j:int b:int \n DECLARE_LOCALS(&return,&j,&b); [line 6]\n NULLIFY(&b,false); [line 6]\n NULLIFY(&j,false); [line 6]\n " color=yellow style=filled] +1 [label="1: Start main\nFormals: \nLocals: j:int b:int \n DECLARE_LOCALS(&return,&j,&b); [line 10]\n NULLIFY(&b,false); [line 10]\n NULLIFY(&j,false); [line 10]\n " color=yellow style=filled] 1 -> 9 ; diff --git a/infer/tests/codetoanalyze/c/frontend/loops/for_no_condition_incr_body.c b/infer/tests/codetoanalyze/c/frontend/loops/for_no_condition_incr_body.c index 2d209699f..c64a84141 100644 --- a/infer/tests/codetoanalyze/c/frontend/loops/for_no_condition_incr_body.c +++ b/infer/tests/codetoanalyze/c/frontend/loops/for_no_condition_incr_body.c @@ -1,6 +1,10 @@ /* - * Copyright (c) 2013 - Facebook. - * All rights reserved. +* Copyright (c) 2013 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ int main() { diff --git a/infer/tests/codetoanalyze/c/frontend/loops/for_no_condition_incr_body.dot b/infer/tests/codetoanalyze/c/frontend/loops/for_no_condition_incr_body.dot index 31b987b28..5194b8d74 100644 --- a/infer/tests/codetoanalyze/c/frontend/loops/for_no_condition_incr_body.dot +++ b/infer/tests/codetoanalyze/c/frontend/loops/for_no_condition_incr_body.dot @@ -1,17 +1,17 @@ digraph iCFG { -8 [label="8: DeclStmt \n *&d:int =0 [line 7]\n NULLIFY(&d,false); [line 7]\n " shape="box"] +8 [label="8: DeclStmt \n *&d:int =0 [line 11]\n NULLIFY(&d,false); [line 11]\n " shape="box"] 8 -> 5 ; -7 [label="7: Prune (false branch) \n PRUNE((1 == 0), false); [line 8]\n " shape="invhouse"] +7 [label="7: Prune (false branch) \n PRUNE((1 == 0), false); [line 12]\n " shape="invhouse"] 7 -> 3 ; -6 [label="6: Prune (true branch) \n PRUNE((1 != 0), true); [line 8]\n APPLY_ABSTRACTION; [line 8]\n " shape="invhouse"] +6 [label="6: Prune (true branch) \n PRUNE((1 != 0), true); [line 12]\n APPLY_ABSTRACTION; [line 12]\n " shape="invhouse"] 6 -> 4 ; -5 [label="5: BinaryOperatorStmt: Assign \n *&d:int =0 [line 8]\n NULLIFY(&d,false); [line 8]\n APPLY_ABSTRACTION; [line 8]\n " shape="box"] +5 [label="5: BinaryOperatorStmt: Assign \n *&d:int =0 [line 12]\n NULLIFY(&d,false); [line 12]\n APPLY_ABSTRACTION; [line 12]\n " shape="box"] 5 -> 4 ; @@ -20,14 +20,14 @@ digraph iCFG { 4 -> 6 ; 4 -> 7 ; -3 [label="3: Return Stmt \n *&return:int =0 [line 10]\n APPLY_ABSTRACTION; [line 10]\n " shape="box"] +3 [label="3: Return Stmt \n *&return:int =0 [line 14]\n APPLY_ABSTRACTION; [line 14]\n " shape="box"] 3 -> 2 ; 2 [label="2: Exit main \n " color=yellow style=filled] -1 [label="1: Start main\nFormals: \nLocals: d:int \n DECLARE_LOCALS(&return,&d); [line 6]\n NULLIFY(&d,false); [line 6]\n " color=yellow style=filled] +1 [label="1: Start main\nFormals: \nLocals: d:int \n DECLARE_LOCALS(&return,&d); [line 10]\n NULLIFY(&d,false); [line 10]\n " color=yellow style=filled] 1 -> 8 ; diff --git a/infer/tests/codetoanalyze/c/frontend/loops/for_only_body.c b/infer/tests/codetoanalyze/c/frontend/loops/for_only_body.c index f226df95a..15b401864 100644 --- a/infer/tests/codetoanalyze/c/frontend/loops/for_only_body.c +++ b/infer/tests/codetoanalyze/c/frontend/loops/for_only_body.c @@ -1,6 +1,10 @@ /* - * Copyright (c) 2013 - Facebook. - * All rights reserved. +* Copyright (c) 2013 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ int main() { diff --git a/infer/tests/codetoanalyze/c/frontend/loops/for_only_body.dot b/infer/tests/codetoanalyze/c/frontend/loops/for_only_body.dot index dc29c9f85..b49e57561 100644 --- a/infer/tests/codetoanalyze/c/frontend/loops/for_only_body.dot +++ b/infer/tests/codetoanalyze/c/frontend/loops/for_only_body.dot @@ -1,17 +1,17 @@ digraph iCFG { -8 [label="8: DeclStmt \n *&i:int =0 [line 7]\n APPLY_ABSTRACTION; [line 7]\n " shape="box"] +8 [label="8: DeclStmt \n *&i:int =0 [line 11]\n APPLY_ABSTRACTION; [line 11]\n " shape="box"] 8 -> 4 ; -7 [label="7: UnaryOperator \n n$0=*&i:int [line 9]\n *&i:int =(n$0 + 1) [line 9]\n REMOVE_TEMPS(n$0); [line 9]\n APPLY_ABSTRACTION; [line 9]\n " shape="box"] +7 [label="7: UnaryOperator \n n$0=*&i:int [line 13]\n *&i:int =(n$0 + 1) [line 13]\n REMOVE_TEMPS(n$0); [line 13]\n APPLY_ABSTRACTION; [line 13]\n " shape="box"] 7 -> 4 ; -6 [label="6: Prune (false branch) \n PRUNE((1 == 0), false); [line 8]\n " shape="invhouse"] +6 [label="6: Prune (false branch) \n PRUNE((1 == 0), false); [line 12]\n " shape="invhouse"] 6 -> 3 ; -5 [label="5: Prune (true branch) \n PRUNE((1 != 0), true); [line 8]\n " shape="invhouse"] +5 [label="5: Prune (true branch) \n PRUNE((1 != 0), true); [line 12]\n " shape="invhouse"] 5 -> 7 ; @@ -20,14 +20,14 @@ digraph iCFG { 4 -> 5 ; 4 -> 6 ; -3 [label="3: Return Stmt \n NULLIFY(&i,false); [line 11]\n *&return:int =0 [line 11]\n APPLY_ABSTRACTION; [line 11]\n " shape="box"] +3 [label="3: Return Stmt \n NULLIFY(&i,false); [line 15]\n *&return:int =0 [line 15]\n APPLY_ABSTRACTION; [line 15]\n " shape="box"] 3 -> 2 ; 2 [label="2: Exit main \n " color=yellow style=filled] -1 [label="1: Start main\nFormals: \nLocals: i:int \n DECLARE_LOCALS(&return,&i); [line 6]\n NULLIFY(&i,false); [line 6]\n " color=yellow style=filled] +1 [label="1: Start main\nFormals: \nLocals: i:int \n DECLARE_LOCALS(&return,&i); [line 10]\n NULLIFY(&i,false); [line 10]\n " color=yellow style=filled] 1 -> 8 ; diff --git a/infer/tests/codetoanalyze/c/frontend/loops/for_simple.c b/infer/tests/codetoanalyze/c/frontend/loops/for_simple.c index 6afdd1b3e..0ded0ef30 100644 --- a/infer/tests/codetoanalyze/c/frontend/loops/for_simple.c +++ b/infer/tests/codetoanalyze/c/frontend/loops/for_simple.c @@ -1,6 +1,10 @@ /* - * Copyright (c) 2013 - Facebook. - * All rights reserved. +* Copyright (c) 2013 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ int main() { diff --git a/infer/tests/codetoanalyze/c/frontend/loops/for_simple.dot b/infer/tests/codetoanalyze/c/frontend/loops/for_simple.dot index 9d2fb9a46..69d9987d7 100644 --- a/infer/tests/codetoanalyze/c/frontend/loops/for_simple.dot +++ b/infer/tests/codetoanalyze/c/frontend/loops/for_simple.dot @@ -1,30 +1,30 @@ digraph iCFG { -11 [label="11: DeclStmt \n *&j:int =0 [line 7]\n " shape="box"] +11 [label="11: DeclStmt \n *&j:int =0 [line 11]\n " shape="box"] 11 -> 5 ; -10 [label="10: ComppoundAssignStmt \n n$2=*&j:int [line 9]\n n$3=*&j:int [line 9]\n *&j:int =(n$3 + n$2) [line 9]\n REMOVE_TEMPS(n$2,n$3); [line 9]\n " shape="box"] +10 [label="10: ComppoundAssignStmt \n n$2=*&j:int [line 13]\n n$3=*&j:int [line 13]\n *&j:int =(n$3 + n$2) [line 13]\n REMOVE_TEMPS(n$2,n$3); [line 13]\n " shape="box"] 10 -> 6 ; -9 [label="9: Prune (false branch) \n PRUNE(((n$1 < 10) == 0), false); [line 8]\n REMOVE_TEMPS(n$1); [line 8]\n " shape="invhouse"] +9 [label="9: Prune (false branch) \n PRUNE(((n$1 < 10) == 0), false); [line 12]\n REMOVE_TEMPS(n$1); [line 12]\n " shape="invhouse"] 9 -> 3 ; -8 [label="8: Prune (true branch) \n PRUNE(((n$1 < 10) != 0), true); [line 8]\n REMOVE_TEMPS(n$1); [line 8]\n " shape="invhouse"] +8 [label="8: Prune (true branch) \n PRUNE(((n$1 < 10) != 0), true); [line 12]\n REMOVE_TEMPS(n$1); [line 12]\n " shape="invhouse"] 8 -> 10 ; -7 [label="7: BinaryOperatorStmt: LT \n n$1=*&i:int [line 8]\n " shape="box"] +7 [label="7: BinaryOperatorStmt: LT \n n$1=*&i:int [line 12]\n " shape="box"] 7 -> 8 ; 7 -> 9 ; -6 [label="6: UnaryOperator \n n$0=*&i:int [line 8]\n *&i:int =(n$0 + 1) [line 8]\n REMOVE_TEMPS(n$0); [line 8]\n APPLY_ABSTRACTION; [line 8]\n " shape="box"] +6 [label="6: UnaryOperator \n n$0=*&i:int [line 12]\n *&i:int =(n$0 + 1) [line 12]\n REMOVE_TEMPS(n$0); [line 12]\n APPLY_ABSTRACTION; [line 12]\n " shape="box"] 6 -> 4 ; -5 [label="5: DeclStmt \n *&i:int =0 [line 8]\n APPLY_ABSTRACTION; [line 8]\n " shape="box"] +5 [label="5: DeclStmt \n *&i:int =0 [line 12]\n APPLY_ABSTRACTION; [line 12]\n " shape="box"] 5 -> 4 ; @@ -32,14 +32,14 @@ digraph iCFG { 4 -> 7 ; -3 [label="3: Return Stmt \n NULLIFY(&i,false); [line 11]\n NULLIFY(&j,false); [line 11]\n *&return:int =0 [line 11]\n APPLY_ABSTRACTION; [line 11]\n " shape="box"] +3 [label="3: Return Stmt \n NULLIFY(&i,false); [line 15]\n NULLIFY(&j,false); [line 15]\n *&return:int =0 [line 15]\n APPLY_ABSTRACTION; [line 15]\n " shape="box"] 3 -> 2 ; 2 [label="2: Exit main \n " color=yellow style=filled] -1 [label="1: Start main\nFormals: \nLocals: j:int i:int \n DECLARE_LOCALS(&return,&j,&i); [line 6]\n NULLIFY(&i,false); [line 6]\n NULLIFY(&j,false); [line 6]\n " color=yellow style=filled] +1 [label="1: Start main\nFormals: \nLocals: j:int i:int \n DECLARE_LOCALS(&return,&j,&i); [line 10]\n NULLIFY(&i,false); [line 10]\n NULLIFY(&j,false); [line 10]\n " color=yellow style=filled] 1 -> 11 ; diff --git a/infer/tests/codetoanalyze/c/frontend/loops/for_while_nested.c b/infer/tests/codetoanalyze/c/frontend/loops/for_while_nested.c index 3506e91af..a3142e493 100644 --- a/infer/tests/codetoanalyze/c/frontend/loops/for_while_nested.c +++ b/infer/tests/codetoanalyze/c/frontend/loops/for_while_nested.c @@ -1,6 +1,10 @@ /* - * Copyright (c) 2013 - Facebook. - * All rights reserved. +* Copyright (c) 2013 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ int main() { diff --git a/infer/tests/codetoanalyze/c/frontend/loops/for_while_nested.dot b/infer/tests/codetoanalyze/c/frontend/loops/for_while_nested.dot index ee2cb6b2e..72ec2cb75 100644 --- a/infer/tests/codetoanalyze/c/frontend/loops/for_while_nested.dot +++ b/infer/tests/codetoanalyze/c/frontend/loops/for_while_nested.dot @@ -1,21 +1,21 @@ digraph iCFG { -15 [label="15: DeclStmt \n *&k:int =0 [line 7]\n " shape="box"] +15 [label="15: DeclStmt \n *&k:int =0 [line 11]\n " shape="box"] 15 -> 5 ; -14 [label="14: UnaryOperator \n n$4=*&k:int [line 10]\n *&k:int =(n$4 + 1) [line 10]\n REMOVE_TEMPS(n$4); [line 10]\n APPLY_ABSTRACTION; [line 10]\n " shape="box"] +14 [label="14: UnaryOperator \n n$4=*&k:int [line 14]\n *&k:int =(n$4 + 1) [line 14]\n REMOVE_TEMPS(n$4); [line 14]\n APPLY_ABSTRACTION; [line 14]\n " shape="box"] 14 -> 10 ; -13 [label="13: Prune (false branch) \n PRUNE(((n$3 < 10) == 0), false); [line 9]\n REMOVE_TEMPS(n$3); [line 9]\n " shape="invhouse"] +13 [label="13: Prune (false branch) \n PRUNE(((n$3 < 10) == 0), false); [line 13]\n REMOVE_TEMPS(n$3); [line 13]\n " shape="invhouse"] 13 -> 6 ; -12 [label="12: Prune (true branch) \n PRUNE(((n$3 < 10) != 0), true); [line 9]\n REMOVE_TEMPS(n$3); [line 9]\n " shape="invhouse"] +12 [label="12: Prune (true branch) \n PRUNE(((n$3 < 10) != 0), true); [line 13]\n REMOVE_TEMPS(n$3); [line 13]\n " shape="invhouse"] 12 -> 14 ; -11 [label="11: BinaryOperatorStmt: LT \n n$3=*&k:int [line 9]\n " shape="box"] +11 [label="11: BinaryOperatorStmt: LT \n n$3=*&k:int [line 13]\n " shape="box"] 11 -> 12 ; @@ -24,24 +24,24 @@ digraph iCFG { 10 -> 11 ; -9 [label="9: Prune (false branch) \n PRUNE(((n$2 < 10) == 0), false); [line 8]\n REMOVE_TEMPS(n$2); [line 8]\n " shape="invhouse"] +9 [label="9: Prune (false branch) \n PRUNE(((n$2 < 10) == 0), false); [line 12]\n REMOVE_TEMPS(n$2); [line 12]\n " shape="invhouse"] 9 -> 3 ; -8 [label="8: Prune (true branch) \n PRUNE(((n$2 < 10) != 0), true); [line 8]\n REMOVE_TEMPS(n$2); [line 8]\n APPLY_ABSTRACTION; [line 8]\n " shape="invhouse"] +8 [label="8: Prune (true branch) \n PRUNE(((n$2 < 10) != 0), true); [line 12]\n REMOVE_TEMPS(n$2); [line 12]\n APPLY_ABSTRACTION; [line 12]\n " shape="invhouse"] 8 -> 10 ; -7 [label="7: BinaryOperatorStmt: LT \n n$2=*&i:int [line 8]\n " shape="box"] +7 [label="7: BinaryOperatorStmt: LT \n n$2=*&i:int [line 12]\n " shape="box"] 7 -> 8 ; 7 -> 9 ; -6 [label="6: UnaryOperator \n n$1=*&i:int [line 8]\n *&i:int =(n$1 + 1) [line 8]\n REMOVE_TEMPS(n$1); [line 8]\n APPLY_ABSTRACTION; [line 8]\n " shape="box"] +6 [label="6: UnaryOperator \n n$1=*&i:int [line 12]\n *&i:int =(n$1 + 1) [line 12]\n REMOVE_TEMPS(n$1); [line 12]\n APPLY_ABSTRACTION; [line 12]\n " shape="box"] 6 -> 4 ; -5 [label="5: DeclStmt \n *&i:int =0 [line 8]\n APPLY_ABSTRACTION; [line 8]\n " shape="box"] +5 [label="5: DeclStmt \n *&i:int =0 [line 12]\n APPLY_ABSTRACTION; [line 12]\n " shape="box"] 5 -> 4 ; @@ -49,14 +49,14 @@ digraph iCFG { 4 -> 7 ; -3 [label="3: Return Stmt \n NULLIFY(&i,false); [line 13]\n n$0=*&k:int [line 13]\n *&return:int =n$0 [line 13]\n REMOVE_TEMPS(n$0); [line 13]\n NULLIFY(&k,false); [line 13]\n APPLY_ABSTRACTION; [line 13]\n " shape="box"] +3 [label="3: Return Stmt \n NULLIFY(&i,false); [line 17]\n n$0=*&k:int [line 17]\n *&return:int =n$0 [line 17]\n REMOVE_TEMPS(n$0); [line 17]\n NULLIFY(&k,false); [line 17]\n APPLY_ABSTRACTION; [line 17]\n " shape="box"] 3 -> 2 ; 2 [label="2: Exit main \n " color=yellow style=filled] -1 [label="1: Start main\nFormals: \nLocals: k:int i:int \n DECLARE_LOCALS(&return,&k,&i); [line 6]\n NULLIFY(&i,false); [line 6]\n NULLIFY(&k,false); [line 6]\n " color=yellow style=filled] +1 [label="1: Start main\nFormals: \nLocals: k:int i:int \n DECLARE_LOCALS(&return,&k,&i); [line 10]\n NULLIFY(&i,false); [line 10]\n NULLIFY(&k,false); [line 10]\n " color=yellow style=filled] 1 -> 15 ; diff --git a/infer/tests/codetoanalyze/c/frontend/loops/while.c b/infer/tests/codetoanalyze/c/frontend/loops/while.c index 59493ee60..5649526f0 100644 --- a/infer/tests/codetoanalyze/c/frontend/loops/while.c +++ b/infer/tests/codetoanalyze/c/frontend/loops/while.c @@ -1,6 +1,10 @@ /* - * Copyright (c) 2013 - Facebook. - * All rights reserved. +* Copyright (c) 2013 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ int main() { diff --git a/infer/tests/codetoanalyze/c/frontend/loops/while.dot b/infer/tests/codetoanalyze/c/frontend/loops/while.dot index 8b77cdc22..2c07cff57 100644 --- a/infer/tests/codetoanalyze/c/frontend/loops/while.dot +++ b/infer/tests/codetoanalyze/c/frontend/loops/while.dot @@ -1,21 +1,21 @@ digraph iCFG { -9 [label="9: DeclStmt \n *&i:int =0 [line 7]\n APPLY_ABSTRACTION; [line 7]\n " shape="box"] +9 [label="9: DeclStmt \n *&i:int =0 [line 11]\n APPLY_ABSTRACTION; [line 11]\n " shape="box"] 9 -> 4 ; -8 [label="8: UnaryOperator \n n$1=*&i:int [line 9]\n *&i:int =(n$1 + 1) [line 9]\n REMOVE_TEMPS(n$1); [line 9]\n APPLY_ABSTRACTION; [line 9]\n " shape="box"] +8 [label="8: UnaryOperator \n n$1=*&i:int [line 13]\n *&i:int =(n$1 + 1) [line 13]\n REMOVE_TEMPS(n$1); [line 13]\n APPLY_ABSTRACTION; [line 13]\n " shape="box"] 8 -> 4 ; -7 [label="7: Prune (false branch) \n PRUNE(((n$0 <= 10) == 0), false); [line 8]\n REMOVE_TEMPS(n$0); [line 8]\n " shape="invhouse"] +7 [label="7: Prune (false branch) \n PRUNE(((n$0 <= 10) == 0), false); [line 12]\n REMOVE_TEMPS(n$0); [line 12]\n " shape="invhouse"] 7 -> 3 ; -6 [label="6: Prune (true branch) \n PRUNE(((n$0 <= 10) != 0), true); [line 8]\n REMOVE_TEMPS(n$0); [line 8]\n " shape="invhouse"] +6 [label="6: Prune (true branch) \n PRUNE(((n$0 <= 10) != 0), true); [line 12]\n REMOVE_TEMPS(n$0); [line 12]\n " shape="invhouse"] 6 -> 8 ; -5 [label="5: BinaryOperatorStmt: LE \n n$0=*&i:int [line 8]\n " shape="box"] +5 [label="5: BinaryOperatorStmt: LE \n n$0=*&i:int [line 12]\n " shape="box"] 5 -> 6 ; @@ -24,14 +24,14 @@ digraph iCFG { 4 -> 5 ; -3 [label="3: Return Stmt \n NULLIFY(&i,false); [line 11]\n *&return:int =0 [line 11]\n APPLY_ABSTRACTION; [line 11]\n " shape="box"] +3 [label="3: Return Stmt \n NULLIFY(&i,false); [line 15]\n *&return:int =0 [line 15]\n APPLY_ABSTRACTION; [line 15]\n " shape="box"] 3 -> 2 ; 2 [label="2: Exit main \n " color=yellow style=filled] -1 [label="1: Start main\nFormals: \nLocals: i:int \n DECLARE_LOCALS(&return,&i); [line 6]\n NULLIFY(&i,false); [line 6]\n " color=yellow style=filled] +1 [label="1: Start main\nFormals: \nLocals: i:int \n DECLARE_LOCALS(&return,&i); [line 10]\n NULLIFY(&i,false); [line 10]\n " color=yellow style=filled] 1 -> 9 ; diff --git a/infer/tests/codetoanalyze/c/frontend/loops/while_condition_side_effects.c b/infer/tests/codetoanalyze/c/frontend/loops/while_condition_side_effects.c index 6ca219edd..536ae3b86 100644 --- a/infer/tests/codetoanalyze/c/frontend/loops/while_condition_side_effects.c +++ b/infer/tests/codetoanalyze/c/frontend/loops/while_condition_side_effects.c @@ -1,6 +1,10 @@ /* - * Copyright (c) 2013 - Facebook. - * All rights reserved. +* Copyright (c) 2013 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ int main() { diff --git a/infer/tests/codetoanalyze/c/frontend/loops/while_condition_side_effects.dot b/infer/tests/codetoanalyze/c/frontend/loops/while_condition_side_effects.dot index 9a6df72e8..45e0b1399 100644 --- a/infer/tests/codetoanalyze/c/frontend/loops/while_condition_side_effects.dot +++ b/infer/tests/codetoanalyze/c/frontend/loops/while_condition_side_effects.dot @@ -1,21 +1,21 @@ digraph iCFG { -9 [label="9: DeclStmt \n *&i:int =0 [line 7]\n NULLIFY(&i,false); [line 7]\n APPLY_ABSTRACTION; [line 7]\n " shape="box"] +9 [label="9: DeclStmt \n *&i:int =0 [line 11]\n NULLIFY(&i,false); [line 11]\n APPLY_ABSTRACTION; [line 11]\n " shape="box"] 9 -> 4 ; -8 [label="8: UnaryOperator \n n$1=*&i:int [line 9]\n *&i:int =(n$1 + 1) [line 9]\n REMOVE_TEMPS(n$1); [line 9]\n NULLIFY(&i,false); [line 9]\n APPLY_ABSTRACTION; [line 9]\n " shape="box"] +8 [label="8: UnaryOperator \n n$1=*&i:int [line 13]\n *&i:int =(n$1 + 1) [line 13]\n REMOVE_TEMPS(n$1); [line 13]\n NULLIFY(&i,false); [line 13]\n APPLY_ABSTRACTION; [line 13]\n " shape="box"] 8 -> 4 ; -7 [label="7: Prune (false branch) \n PRUNE((n$0 == 0), false); [line 8]\n REMOVE_TEMPS(n$0); [line 8]\n " shape="invhouse"] +7 [label="7: Prune (false branch) \n PRUNE((n$0 == 0), false); [line 12]\n REMOVE_TEMPS(n$0); [line 12]\n " shape="invhouse"] 7 -> 3 ; -6 [label="6: Prune (true branch) \n PRUNE((n$0 != 0), true); [line 8]\n REMOVE_TEMPS(n$0); [line 8]\n " shape="invhouse"] +6 [label="6: Prune (true branch) \n PRUNE((n$0 != 0), true); [line 12]\n REMOVE_TEMPS(n$0); [line 12]\n " shape="invhouse"] 6 -> 8 ; -5 [label="5: BinaryOperatorStmt: Assign \n *&i:int =10 [line 8]\n n$0=*&i:int [line 8]\n " shape="box"] +5 [label="5: BinaryOperatorStmt: Assign \n *&i:int =10 [line 12]\n n$0=*&i:int [line 12]\n " shape="box"] 5 -> 6 ; @@ -24,14 +24,14 @@ digraph iCFG { 4 -> 5 ; -3 [label="3: Return Stmt \n NULLIFY(&i,false); [line 11]\n *&return:int =0 [line 11]\n APPLY_ABSTRACTION; [line 11]\n " shape="box"] +3 [label="3: Return Stmt \n NULLIFY(&i,false); [line 15]\n *&return:int =0 [line 15]\n APPLY_ABSTRACTION; [line 15]\n " shape="box"] 3 -> 2 ; 2 [label="2: Exit main \n " color=yellow style=filled] -1 [label="1: Start main\nFormals: \nLocals: i:int \n DECLARE_LOCALS(&return,&i); [line 6]\n NULLIFY(&i,false); [line 6]\n " color=yellow style=filled] +1 [label="1: Start main\nFormals: \nLocals: i:int \n DECLARE_LOCALS(&return,&i); [line 10]\n NULLIFY(&i,false); [line 10]\n " color=yellow style=filled] 1 -> 9 ; diff --git a/infer/tests/codetoanalyze/c/frontend/loops/while_nested.c b/infer/tests/codetoanalyze/c/frontend/loops/while_nested.c index 9ece03a4b..411cb900b 100644 --- a/infer/tests/codetoanalyze/c/frontend/loops/while_nested.c +++ b/infer/tests/codetoanalyze/c/frontend/loops/while_nested.c @@ -1,6 +1,10 @@ /* - * Copyright (c) 2013 - Facebook. - * All rights reserved. +* Copyright (c) 2013 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ int main() { diff --git a/infer/tests/codetoanalyze/c/frontend/loops/while_nested.dot b/infer/tests/codetoanalyze/c/frontend/loops/while_nested.dot index ab77b43f7..f69f8fdd5 100644 --- a/infer/tests/codetoanalyze/c/frontend/loops/while_nested.dot +++ b/infer/tests/codetoanalyze/c/frontend/loops/while_nested.dot @@ -1,25 +1,25 @@ digraph iCFG { -15 [label="15: DeclStmt \n *&i:int =0 [line 7]\n " shape="box"] +15 [label="15: DeclStmt \n *&i:int =0 [line 11]\n " shape="box"] 15 -> 14 ; -14 [label="14: DeclStmt \n *&k:int =0 [line 8]\n APPLY_ABSTRACTION; [line 8]\n " shape="box"] +14 [label="14: DeclStmt \n *&k:int =0 [line 12]\n APPLY_ABSTRACTION; [line 12]\n " shape="box"] 14 -> 4 ; -13 [label="13: UnaryOperator \n n$3=*&k:int [line 11]\n *&k:int =(n$3 + 1) [line 11]\n REMOVE_TEMPS(n$3); [line 11]\n APPLY_ABSTRACTION; [line 11]\n " shape="box"] +13 [label="13: UnaryOperator \n n$3=*&k:int [line 15]\n *&k:int =(n$3 + 1) [line 15]\n REMOVE_TEMPS(n$3); [line 15]\n APPLY_ABSTRACTION; [line 15]\n " shape="box"] 13 -> 9 ; -12 [label="12: Prune (false branch) \n PRUNE(((n$2 <= 5) == 0), false); [line 10]\n REMOVE_TEMPS(n$2); [line 10]\n " shape="invhouse"] +12 [label="12: Prune (false branch) \n PRUNE(((n$2 <= 5) == 0), false); [line 14]\n REMOVE_TEMPS(n$2); [line 14]\n " shape="invhouse"] 12 -> 8 ; -11 [label="11: Prune (true branch) \n PRUNE(((n$2 <= 5) != 0), true); [line 10]\n REMOVE_TEMPS(n$2); [line 10]\n " shape="invhouse"] +11 [label="11: Prune (true branch) \n PRUNE(((n$2 <= 5) != 0), true); [line 14]\n REMOVE_TEMPS(n$2); [line 14]\n " shape="invhouse"] 11 -> 13 ; -10 [label="10: BinaryOperatorStmt: LE \n n$2=*&k:int [line 10]\n " shape="box"] +10 [label="10: BinaryOperatorStmt: LE \n n$2=*&k:int [line 14]\n " shape="box"] 10 -> 11 ; @@ -28,19 +28,19 @@ digraph iCFG { 9 -> 10 ; -8 [label="8: UnaryOperator \n n$1=*&i:int [line 13]\n *&i:int =(n$1 + 1) [line 13]\n REMOVE_TEMPS(n$1); [line 13]\n APPLY_ABSTRACTION; [line 13]\n " shape="box"] +8 [label="8: UnaryOperator \n n$1=*&i:int [line 17]\n *&i:int =(n$1 + 1) [line 17]\n REMOVE_TEMPS(n$1); [line 17]\n APPLY_ABSTRACTION; [line 17]\n " shape="box"] 8 -> 4 ; -7 [label="7: Prune (false branch) \n PRUNE(((n$0 <= 10) == 0), false); [line 9]\n REMOVE_TEMPS(n$0); [line 9]\n " shape="invhouse"] +7 [label="7: Prune (false branch) \n PRUNE(((n$0 <= 10) == 0), false); [line 13]\n REMOVE_TEMPS(n$0); [line 13]\n " shape="invhouse"] 7 -> 3 ; -6 [label="6: Prune (true branch) \n PRUNE(((n$0 <= 10) != 0), true); [line 9]\n REMOVE_TEMPS(n$0); [line 9]\n APPLY_ABSTRACTION; [line 9]\n " shape="invhouse"] +6 [label="6: Prune (true branch) \n PRUNE(((n$0 <= 10) != 0), true); [line 13]\n REMOVE_TEMPS(n$0); [line 13]\n APPLY_ABSTRACTION; [line 13]\n " shape="invhouse"] 6 -> 9 ; -5 [label="5: BinaryOperatorStmt: LE \n n$0=*&i:int [line 9]\n " shape="box"] +5 [label="5: BinaryOperatorStmt: LE \n n$0=*&i:int [line 13]\n " shape="box"] 5 -> 6 ; @@ -49,14 +49,14 @@ digraph iCFG { 4 -> 5 ; -3 [label="3: Return Stmt \n NULLIFY(&i,false); [line 15]\n NULLIFY(&k,false); [line 15]\n *&return:int =0 [line 15]\n APPLY_ABSTRACTION; [line 15]\n " shape="box"] +3 [label="3: Return Stmt \n NULLIFY(&i,false); [line 19]\n NULLIFY(&k,false); [line 19]\n *&return:int =0 [line 19]\n APPLY_ABSTRACTION; [line 19]\n " shape="box"] 3 -> 2 ; 2 [label="2: Exit main \n " color=yellow style=filled] -1 [label="1: Start main\nFormals: \nLocals: i:int k:int \n DECLARE_LOCALS(&return,&i,&k); [line 6]\n NULLIFY(&i,false); [line 6]\n NULLIFY(&k,false); [line 6]\n " color=yellow style=filled] +1 [label="1: Start main\nFormals: \nLocals: i:int k:int \n DECLARE_LOCALS(&return,&i,&k); [line 10]\n NULLIFY(&i,false); [line 10]\n NULLIFY(&k,false); [line 10]\n " color=yellow style=filled] 1 -> 15 ; diff --git a/infer/tests/codetoanalyze/c/frontend/loops/while_no_body.c b/infer/tests/codetoanalyze/c/frontend/loops/while_no_body.c index 074aaa404..efc081c56 100644 --- a/infer/tests/codetoanalyze/c/frontend/loops/while_no_body.c +++ b/infer/tests/codetoanalyze/c/frontend/loops/while_no_body.c @@ -1,6 +1,10 @@ /* - * Copyright (c) 2013 - Facebook. - * All rights reserved. +* Copyright (c) 2013 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ int main(){ diff --git a/infer/tests/codetoanalyze/c/frontend/loops/while_no_body.dot b/infer/tests/codetoanalyze/c/frontend/loops/while_no_body.dot index 8ac119b00..47810a8d7 100644 --- a/infer/tests/codetoanalyze/c/frontend/loops/while_no_body.dot +++ b/infer/tests/codetoanalyze/c/frontend/loops/while_no_body.dot @@ -1,9 +1,9 @@ digraph iCFG { -6 [label="6: Prune (false branch) \n PRUNE((1 == 0), false); [line 7]\n " shape="invhouse"] +6 [label="6: Prune (false branch) \n PRUNE((1 == 0), false); [line 11]\n " shape="invhouse"] 6 -> 3 ; -5 [label="5: Prune (true branch) \n PRUNE((1 != 0), true); [line 7]\n APPLY_ABSTRACTION; [line 7]\n " shape="invhouse"] +5 [label="5: Prune (true branch) \n PRUNE((1 != 0), true); [line 11]\n APPLY_ABSTRACTION; [line 11]\n " shape="invhouse"] 5 -> 4 ; @@ -12,14 +12,14 @@ digraph iCFG { 4 -> 5 ; 4 -> 6 ; -3 [label="3: Return Stmt \n *&return:int =0 [line 8]\n APPLY_ABSTRACTION; [line 8]\n " shape="box"] +3 [label="3: Return Stmt \n *&return:int =0 [line 12]\n APPLY_ABSTRACTION; [line 12]\n " shape="box"] 3 -> 2 ; 2 [label="2: Exit main \n " color=yellow style=filled] -1 [label="1: Start main\nFormals: \nLocals: \n DECLARE_LOCALS(&return); [line 6]\n " color=yellow style=filled] +1 [label="1: Start main\nFormals: \nLocals: \n DECLARE_LOCALS(&return); [line 10]\n " color=yellow style=filled] 1 -> 4 ; diff --git a/infer/tests/codetoanalyze/c/frontend/loops/while_with_continue_and_break.c b/infer/tests/codetoanalyze/c/frontend/loops/while_with_continue_and_break.c index cf089a33b..50ecccfad 100644 --- a/infer/tests/codetoanalyze/c/frontend/loops/while_with_continue_and_break.c +++ b/infer/tests/codetoanalyze/c/frontend/loops/while_with_continue_and_break.c @@ -1,6 +1,10 @@ /* - * Copyright (c) 2013 - Facebook. - * All rights reserved. +* Copyright (c) 2013 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ int main() { diff --git a/infer/tests/codetoanalyze/c/frontend/loops/while_with_continue_and_break.dot b/infer/tests/codetoanalyze/c/frontend/loops/while_with_continue_and_break.dot index 6b4221944..03e99de1f 100644 --- a/infer/tests/codetoanalyze/c/frontend/loops/while_with_continue_and_break.dot +++ b/infer/tests/codetoanalyze/c/frontend/loops/while_with_continue_and_break.dot @@ -1,21 +1,21 @@ digraph iCFG { -19 [label="19: DeclStmt \n *&x:int =0 [line 7]\n APPLY_ABSTRACTION; [line 7]\n " shape="box"] +19 [label="19: DeclStmt \n *&x:int =0 [line 11]\n APPLY_ABSTRACTION; [line 11]\n " shape="box"] 19 -> 4 ; -18 [label="18: ComppoundAssignStmt \n n$2=*&x:int [line 10]\n *&x:int =(n$2 + 1) [line 10]\n REMOVE_TEMPS(n$2); [line 10]\n " shape="box"] +18 [label="18: ComppoundAssignStmt \n n$2=*&x:int [line 14]\n *&x:int =(n$2 + 1) [line 14]\n REMOVE_TEMPS(n$2); [line 14]\n " shape="box"] 18 -> 15 ; -17 [label="17: Prune (false branch) \n PRUNE(((n$1 > 5) == 0), false); [line 11]\n REMOVE_TEMPS(n$1); [line 11]\n " shape="invhouse"] +17 [label="17: Prune (false branch) \n PRUNE(((n$1 > 5) == 0), false); [line 15]\n REMOVE_TEMPS(n$1); [line 15]\n " shape="invhouse"] 17 -> 14 ; -16 [label="16: Prune (true branch) \n PRUNE(((n$1 > 5) != 0), true); [line 11]\n REMOVE_TEMPS(n$1); [line 11]\n APPLY_ABSTRACTION; [line 11]\n " shape="invhouse"] +16 [label="16: Prune (true branch) \n PRUNE(((n$1 > 5) != 0), true); [line 15]\n REMOVE_TEMPS(n$1); [line 15]\n APPLY_ABSTRACTION; [line 15]\n " shape="invhouse"] 16 -> 8 ; -15 [label="15: BinaryOperatorStmt: GT \n n$1=*&x:int [line 11]\n " shape="box"] +15 [label="15: BinaryOperatorStmt: GT \n n$1=*&x:int [line 15]\n " shape="box"] 15 -> 16 ; @@ -24,11 +24,11 @@ digraph iCFG { 14 -> 11 ; -13 [label="13: Prune (false branch) \n PRUNE((2 == 0), false); [line 9]\n APPLY_ABSTRACTION; [line 9]\n " shape="invhouse"] +13 [label="13: Prune (false branch) \n PRUNE((2 == 0), false); [line 13]\n APPLY_ABSTRACTION; [line 13]\n " shape="invhouse"] 13 -> 8 ; -12 [label="12: Prune (true branch) \n PRUNE((2 != 0), true); [line 9]\n " shape="invhouse"] +12 [label="12: Prune (true branch) \n PRUNE((2 != 0), true); [line 13]\n " shape="invhouse"] 12 -> 18 ; @@ -37,15 +37,15 @@ digraph iCFG { 11 -> 12 ; 11 -> 13 ; -10 [label="10: Prune (false branch) \n PRUNE(((n$0 == 2) == 0), false); [line 15]\n REMOVE_TEMPS(n$0); [line 15]\n " shape="invhouse"] +10 [label="10: Prune (false branch) \n PRUNE(((n$0 == 2) == 0), false); [line 19]\n REMOVE_TEMPS(n$0); [line 19]\n " shape="invhouse"] 10 -> 7 ; -9 [label="9: Prune (true branch) \n PRUNE(((n$0 == 2) != 0), true); [line 15]\n REMOVE_TEMPS(n$0); [line 15]\n APPLY_ABSTRACTION; [line 15]\n " shape="invhouse"] +9 [label="9: Prune (true branch) \n PRUNE(((n$0 == 2) != 0), true); [line 19]\n REMOVE_TEMPS(n$0); [line 19]\n APPLY_ABSTRACTION; [line 19]\n " shape="invhouse"] 9 -> 4 ; -8 [label="8: BinaryOperatorStmt: EQ \n n$0=*&x:int [line 15]\n " shape="box"] +8 [label="8: BinaryOperatorStmt: EQ \n n$0=*&x:int [line 19]\n " shape="box"] 8 -> 9 ; @@ -54,11 +54,11 @@ digraph iCFG { 7 -> 4 ; -6 [label="6: Prune (false branch) \n PRUNE((1 == 0), false); [line 8]\n " shape="invhouse"] +6 [label="6: Prune (false branch) \n PRUNE((1 == 0), false); [line 12]\n " shape="invhouse"] 6 -> 3 ; -5 [label="5: Prune (true branch) \n PRUNE((1 != 0), true); [line 8]\n APPLY_ABSTRACTION; [line 8]\n " shape="invhouse"] +5 [label="5: Prune (true branch) \n PRUNE((1 != 0), true); [line 12]\n APPLY_ABSTRACTION; [line 12]\n " shape="invhouse"] 5 -> 11 ; @@ -67,14 +67,14 @@ digraph iCFG { 4 -> 5 ; 4 -> 6 ; -3 [label="3: Return Stmt \n NULLIFY(&x,false); [line 19]\n *&return:int =0 [line 19]\n APPLY_ABSTRACTION; [line 19]\n " shape="box"] +3 [label="3: Return Stmt \n NULLIFY(&x,false); [line 23]\n *&return:int =0 [line 23]\n APPLY_ABSTRACTION; [line 23]\n " shape="box"] 3 -> 2 ; 2 [label="2: Exit main \n " color=yellow style=filled] -1 [label="1: Start main\nFormals: \nLocals: x:int \n DECLARE_LOCALS(&return,&x); [line 6]\n NULLIFY(&x,false); [line 6]\n " color=yellow style=filled] +1 [label="1: Start main\nFormals: \nLocals: x:int \n DECLARE_LOCALS(&return,&x); [line 10]\n NULLIFY(&x,false); [line 10]\n " color=yellow style=filled] 1 -> 19 ; diff --git a/infer/tests/codetoanalyze/c/frontend/nestedoperators/assign_in_condition.c b/infer/tests/codetoanalyze/c/frontend/nestedoperators/assign_in_condition.c index 97ecace57..7f9a1928a 100644 --- a/infer/tests/codetoanalyze/c/frontend/nestedoperators/assign_in_condition.c +++ b/infer/tests/codetoanalyze/c/frontend/nestedoperators/assign_in_condition.c @@ -1,6 +1,10 @@ /* - * Copyright (c) 2013 - Facebook. - * All rights reserved. +* Copyright (c) 2013 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ int foo(int *p) { diff --git a/infer/tests/codetoanalyze/c/frontend/nestedoperators/assign_in_condition.dot b/infer/tests/codetoanalyze/c/frontend/nestedoperators/assign_in_condition.dot index 304dcfa1e..38050eae4 100644 --- a/infer/tests/codetoanalyze/c/frontend/nestedoperators/assign_in_condition.dot +++ b/infer/tests/codetoanalyze/c/frontend/nestedoperators/assign_in_condition.dot @@ -1,17 +1,17 @@ digraph iCFG { -8 [label="8: Return Stmt \n *&return:int =32 [line 8]\n APPLY_ABSTRACTION; [line 8]\n " shape="box"] +8 [label="8: Return Stmt \n *&return:int =32 [line 12]\n APPLY_ABSTRACTION; [line 12]\n " shape="box"] 8 -> 2 ; -7 [label="7: Prune (false branch) \n PRUNE((n$1 == 0), false); [line 7]\n REMOVE_TEMPS(n$0,n$1); [line 7]\n " shape="invhouse"] +7 [label="7: Prune (false branch) \n PRUNE((n$1 == 0), false); [line 11]\n REMOVE_TEMPS(n$0,n$1); [line 11]\n " shape="invhouse"] 7 -> 4 ; -6 [label="6: Prune (true branch) \n PRUNE((n$1 != 0), true); [line 7]\n REMOVE_TEMPS(n$0,n$1); [line 7]\n " shape="invhouse"] +6 [label="6: Prune (true branch) \n PRUNE((n$1 != 0), true); [line 11]\n REMOVE_TEMPS(n$0,n$1); [line 11]\n " shape="invhouse"] 6 -> 8 ; -5 [label="5: BinaryOperatorStmt: Assign \n n$0=*&p:int * [line 7]\n *n$0:int =0 [line 7]\n n$1=*n$0:int [line 7]\n NULLIFY(&p,false); [line 7]\n " shape="box"] +5 [label="5: BinaryOperatorStmt: Assign \n n$0=*&p:int * [line 11]\n *n$0:int =0 [line 11]\n n$1=*n$0:int [line 11]\n NULLIFY(&p,false); [line 11]\n " shape="box"] 5 -> 6 ; @@ -20,14 +20,14 @@ digraph iCFG { 4 -> 3 ; -3 [label="3: Return Stmt \n *&return:int =52 [line 10]\n APPLY_ABSTRACTION; [line 10]\n " shape="box"] +3 [label="3: Return Stmt \n *&return:int =52 [line 14]\n APPLY_ABSTRACTION; [line 14]\n " shape="box"] 3 -> 2 ; 2 [label="2: Exit foo \n " color=yellow style=filled] -1 [label="1: Start foo\nFormals: p:int *\nLocals: \n DECLARE_LOCALS(&return); [line 6]\n " color=yellow style=filled] +1 [label="1: Start foo\nFormals: p:int *\nLocals: \n DECLARE_LOCALS(&return); [line 10]\n " color=yellow style=filled] 1 -> 5 ; diff --git a/infer/tests/codetoanalyze/c/frontend/nestedoperators/gnuexpr.c b/infer/tests/codetoanalyze/c/frontend/nestedoperators/gnuexpr.c index 3882dab09..107647ac8 100644 --- a/infer/tests/codetoanalyze/c/frontend/nestedoperators/gnuexpr.c +++ b/infer/tests/codetoanalyze/c/frontend/nestedoperators/gnuexpr.c @@ -1,6 +1,10 @@ /* - * Copyright (c) 2013 - Facebook. - * All rights reserved. +* Copyright (c) 2013 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ int main() { diff --git a/infer/tests/codetoanalyze/c/frontend/nestedoperators/gnuexpr.dot b/infer/tests/codetoanalyze/c/frontend/nestedoperators/gnuexpr.dot index f27b56c73..9bbb89467 100644 --- a/infer/tests/codetoanalyze/c/frontend/nestedoperators/gnuexpr.dot +++ b/infer/tests/codetoanalyze/c/frontend/nestedoperators/gnuexpr.dot @@ -1,20 +1,20 @@ digraph iCFG { -5 [label="5: DeclStmt \n *&y:int =3 [line 7]\n NULLIFY(&y,false); [line 7]\n " shape="box"] +5 [label="5: DeclStmt \n *&y:int =3 [line 11]\n NULLIFY(&y,false); [line 11]\n " shape="box"] 5 -> 4 ; -4 [label="4: BinaryOperatorStmt: Assign \n n$0=*&X:int [line 9]\n *&X:int =4 [line 9]\n n$1=*&X:int [line 9]\n *&y:int =n$1 [line 9]\n REMOVE_TEMPS(n$1,n$0); [line 9]\n NULLIFY(&X,false); [line 9]\n NULLIFY(&y,false); [line 9]\n " shape="box"] +4 [label="4: BinaryOperatorStmt: Assign \n n$0=*&X:int [line 13]\n *&X:int =4 [line 13]\n n$1=*&X:int [line 13]\n *&y:int =n$1 [line 13]\n REMOVE_TEMPS(n$1,n$0); [line 13]\n NULLIFY(&X,false); [line 13]\n NULLIFY(&y,false); [line 13]\n " shape="box"] 4 -> 3 ; -3 [label="3: Return Stmt \n *&return:int =0 [line 10]\n APPLY_ABSTRACTION; [line 10]\n " shape="box"] +3 [label="3: Return Stmt \n *&return:int =0 [line 14]\n APPLY_ABSTRACTION; [line 14]\n " shape="box"] 3 -> 2 ; 2 [label="2: Exit main \n " color=yellow style=filled] -1 [label="1: Start main\nFormals: \nLocals: y:int X:int \n DECLARE_LOCALS(&return,&y,&X); [line 6]\n NULLIFY(&y,false); [line 6]\n " color=yellow style=filled] +1 [label="1: Start main\nFormals: \nLocals: y:int X:int \n DECLARE_LOCALS(&return,&y,&X); [line 10]\n NULLIFY(&y,false); [line 10]\n " color=yellow style=filled] 1 -> 5 ; diff --git a/infer/tests/codetoanalyze/c/frontend/nestedoperators/nestedassignment.c b/infer/tests/codetoanalyze/c/frontend/nestedoperators/nestedassignment.c index 97a3f0660..2554f9896 100644 --- a/infer/tests/codetoanalyze/c/frontend/nestedoperators/nestedassignment.c +++ b/infer/tests/codetoanalyze/c/frontend/nestedoperators/nestedassignment.c @@ -1,6 +1,10 @@ /* - * Copyright (c) 2013 - Facebook. - * All rights reserved. +* Copyright (c) 2013 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ int main() { diff --git a/infer/tests/codetoanalyze/c/frontend/nestedoperators/nestedassignment.dot b/infer/tests/codetoanalyze/c/frontend/nestedoperators/nestedassignment.dot index 31bb95f58..2b3fb9e8d 100644 --- a/infer/tests/codetoanalyze/c/frontend/nestedoperators/nestedassignment.dot +++ b/infer/tests/codetoanalyze/c/frontend/nestedoperators/nestedassignment.dot @@ -1,36 +1,36 @@ digraph iCFG { -9 [label="9: DeclStmt \n *&x:double =1.000000 [line 7]\n NULLIFY(&x,false); [line 7]\n " shape="box"] +9 [label="9: DeclStmt \n *&x:double =1.000000 [line 11]\n NULLIFY(&x,false); [line 11]\n " shape="box"] 9 -> 8 ; -8 [label="8: BinaryOperatorStmt: Assign \n n$11=*&s:double [line 9]\n *&x:double =n$11 [line 9]\n REMOVE_TEMPS(n$11); [line 9]\n NULLIFY(&x,false); [line 9]\n " shape="box"] +8 [label="8: BinaryOperatorStmt: Assign \n n$11=*&s:double [line 13]\n *&x:double =n$11 [line 13]\n REMOVE_TEMPS(n$11); [line 13]\n NULLIFY(&x,false); [line 13]\n " shape="box"] 8 -> 7 ; -7 [label="7: BinaryOperatorStmt: Assign \n *&x:double =3 [line 10]\n n$10=*&x:double [line 10]\n *&q:double =n$10 [line 10]\n REMOVE_TEMPS(n$10); [line 10]\n NULLIFY(&q,false); [line 10]\n " shape="box"] +7 [label="7: BinaryOperatorStmt: Assign \n *&x:double =3 [line 14]\n n$10=*&x:double [line 14]\n *&q:double =n$10 [line 14]\n REMOVE_TEMPS(n$10); [line 14]\n NULLIFY(&q,false); [line 14]\n " shape="box"] 7 -> 6 ; -6 [label="6: ComppoundAssignStmt \n n$9=*&x:double [line 11]\n *&x:double =(n$9 + 7) [line 11]\n REMOVE_TEMPS(n$9); [line 11]\n " shape="box"] +6 [label="6: ComppoundAssignStmt \n n$9=*&x:double [line 15]\n *&x:double =(n$9 + 7) [line 15]\n REMOVE_TEMPS(n$9); [line 15]\n " shape="box"] 6 -> 5 ; -5 [label="5: BinaryOperatorStmt: Assign \n n$7=*&x:double [line 12]\n *&x:double =(n$7 + 1.000000) [line 12]\n n$8=*&x:double [line 12]\n *&q:double =n$8 [line 12]\n REMOVE_TEMPS(n$7,n$8); [line 12]\n NULLIFY(&q,false); [line 12]\n " shape="box"] +5 [label="5: BinaryOperatorStmt: Assign \n n$7=*&x:double [line 16]\n *&x:double =(n$7 + 1.000000) [line 16]\n n$8=*&x:double [line 16]\n *&q:double =n$8 [line 16]\n REMOVE_TEMPS(n$7,n$8); [line 16]\n NULLIFY(&q,false); [line 16]\n " shape="box"] 5 -> 4 ; -4 [label="4: BinaryOperatorStmt: Assign \n n$0=*&t:double [line 13]\n n$1=*&s:double [line 13]\n *&s:double =(n$1 + n$0) [line 13]\n n$2=*&s:double [line 13]\n n$3=*&r:double [line 13]\n *&r:double =(n$3 + n$2) [line 13]\n n$4=*&r:double [line 13]\n n$5=*&x:double [line 13]\n *&x:double =(n$5 + n$4) [line 13]\n n$6=*&x:double [line 13]\n *&q:double =n$6 [line 13]\n REMOVE_TEMPS(n$0,n$1,n$2,n$3,n$4,n$5,n$6); [line 13]\n NULLIFY(&q,false); [line 13]\n NULLIFY(&r,false); [line 13]\n NULLIFY(&s,false); [line 13]\n NULLIFY(&t,false); [line 13]\n NULLIFY(&x,false); [line 13]\n " shape="box"] +4 [label="4: BinaryOperatorStmt: Assign \n n$0=*&t:double [line 17]\n n$1=*&s:double [line 17]\n *&s:double =(n$1 + n$0) [line 17]\n n$2=*&s:double [line 17]\n n$3=*&r:double [line 17]\n *&r:double =(n$3 + n$2) [line 17]\n n$4=*&r:double [line 17]\n n$5=*&x:double [line 17]\n *&x:double =(n$5 + n$4) [line 17]\n n$6=*&x:double [line 17]\n *&q:double =n$6 [line 17]\n REMOVE_TEMPS(n$0,n$1,n$2,n$3,n$4,n$5,n$6); [line 17]\n NULLIFY(&q,false); [line 17]\n NULLIFY(&r,false); [line 17]\n NULLIFY(&s,false); [line 17]\n NULLIFY(&t,false); [line 17]\n NULLIFY(&x,false); [line 17]\n " shape="box"] 4 -> 3 ; -3 [label="3: Return Stmt \n *&return:int =0 [line 14]\n APPLY_ABSTRACTION; [line 14]\n " shape="box"] +3 [label="3: Return Stmt \n *&return:int =0 [line 18]\n APPLY_ABSTRACTION; [line 18]\n " shape="box"] 3 -> 2 ; 2 [label="2: Exit main \n " color=yellow style=filled] -1 [label="1: Start main\nFormals: \nLocals: x:double q:double r:double s:double t:double \n DECLARE_LOCALS(&return,&x,&q,&r,&s,&t); [line 6]\n NULLIFY(&q,false); [line 6]\n NULLIFY(&x,false); [line 6]\n " color=yellow style=filled] +1 [label="1: Start main\nFormals: \nLocals: x:double q:double r:double s:double t:double \n DECLARE_LOCALS(&return,&x,&q,&r,&s,&t); [line 10]\n NULLIFY(&q,false); [line 10]\n NULLIFY(&x,false); [line 10]\n " color=yellow style=filled] 1 -> 9 ; diff --git a/infer/tests/codetoanalyze/c/frontend/nestedoperators/union.c b/infer/tests/codetoanalyze/c/frontend/nestedoperators/union.c index 85bf56bfd..b43df13d9 100644 --- a/infer/tests/codetoanalyze/c/frontend/nestedoperators/union.c +++ b/infer/tests/codetoanalyze/c/frontend/nestedoperators/union.c @@ -1,6 +1,10 @@ /* - * Copyright (c) 2013 - Facebook. - * All rights reserved. +* Copyright (c) 2013 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ #include diff --git a/infer/tests/codetoanalyze/c/frontend/nestedoperators/union.dot b/infer/tests/codetoanalyze/c/frontend/nestedoperators/union.dot index aba19a48d..35158cbff 100644 --- a/infer/tests/codetoanalyze/c/frontend/nestedoperators/union.dot +++ b/infer/tests/codetoanalyze/c/frontend/nestedoperators/union.dot @@ -1,28 +1,28 @@ digraph iCFG { -7 [label="7: BinaryOperatorStmt: Assign \n n$3=*&#GB$x:struct (anonymous at infer/tests/codetoanalyze/c/frontend/nestedoperators/union.c:8:1) * [line 23]\n *n$3.a:int =1 [line 23]\n REMOVE_TEMPS(n$3); [line 23]\n " shape="box"] +7 [label="7: BinaryOperatorStmt: Assign \n n$3=*&#GB$x:struct (anonymous at infer/tests/codetoanalyze/c/frontend/nestedoperators/union.c:12:1) * [line 27]\n *n$3.a:int =1 [line 27]\n REMOVE_TEMPS(n$3); [line 27]\n " shape="box"] 7 -> 6 ; -6 [label="6: BinaryOperatorStmt: Assign \n *&#GB$y.f:int =7 [line 24]\n " shape="box"] +6 [label="6: BinaryOperatorStmt: Assign \n *&#GB$y.f:int =7 [line 28]\n " shape="box"] 6 -> 5 ; -5 [label="5: BinaryOperatorStmt: Assign \n n$2=*&#GB$y.f:int [line 25]\n *&#GB$y.g.u:int =n$2 [line 25]\n REMOVE_TEMPS(n$2); [line 25]\n " shape="box"] +5 [label="5: BinaryOperatorStmt: Assign \n n$2=*&#GB$y.f:int [line 29]\n *&#GB$y.g.u:int =n$2 [line 29]\n REMOVE_TEMPS(n$2); [line 29]\n " shape="box"] 5 -> 4 ; -4 [label="4: BinaryOperatorStmt: Assign \n n$0=*&#GB$x:struct (anonymous at infer/tests/codetoanalyze/c/frontend/nestedoperators/union.c:8:1) * [line 27]\n n$1=*n$0.b:int [line 27]\n *&#GB$y.g.w:int =n$1 [line 27]\n REMOVE_TEMPS(n$0,n$1); [line 27]\n " shape="box"] +4 [label="4: BinaryOperatorStmt: Assign \n n$0=*&#GB$x:struct (anonymous at infer/tests/codetoanalyze/c/frontend/nestedoperators/union.c:12:1) * [line 31]\n n$1=*n$0.b:int [line 31]\n *&#GB$y.g.w:int =n$1 [line 31]\n REMOVE_TEMPS(n$0,n$1); [line 31]\n " shape="box"] 4 -> 3 ; -3 [label="3: Return Stmt \n *&return:int =0 [line 28]\n APPLY_ABSTRACTION; [line 28]\n " shape="box"] +3 [label="3: Return Stmt \n *&return:int =0 [line 32]\n APPLY_ABSTRACTION; [line 32]\n " shape="box"] 3 -> 2 ; 2 [label="2: Exit main \n " color=yellow style=filled] -1 [label="1: Start main\nFormals: \nLocals: l:int \n DECLARE_LOCALS(&return,&l); [line 20]\n NULLIFY(&l,false); [line 20]\n " color=yellow style=filled] +1 [label="1: Start main\nFormals: \nLocals: l:int \n DECLARE_LOCALS(&return,&l); [line 24]\n NULLIFY(&l,false); [line 24]\n " color=yellow style=filled] 1 -> 7 ; diff --git a/infer/tests/codetoanalyze/c/frontend/switchstmt/switch.c b/infer/tests/codetoanalyze/c/frontend/switchstmt/switch.c index 82dd19195..8312677a6 100644 --- a/infer/tests/codetoanalyze/c/frontend/switchstmt/switch.c +++ b/infer/tests/codetoanalyze/c/frontend/switchstmt/switch.c @@ -1,6 +1,10 @@ /* - * Copyright (c) 2013 - Facebook. - * All rights reserved. +* Copyright (c) 2013 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ #import diff --git a/infer/tests/codetoanalyze/c/frontend/switchstmt/switch.dot b/infer/tests/codetoanalyze/c/frontend/switchstmt/switch.dot index 0e095ecc8..1d24947cd 100644 --- a/infer/tests/codetoanalyze/c/frontend/switchstmt/switch.dot +++ b/infer/tests/codetoanalyze/c/frontend/switchstmt/switch.dot @@ -1,42 +1,42 @@ digraph iCFG { -195 [label="195: DeclStmt \n *&value:int =0 [line 218]\n " shape="box"] +195 [label="195: DeclStmt \n *&value:int =0 [line 222]\n " shape="box"] 195 -> 186 ; -194 [label="194: Prune (false branch) \n PRUNE(((n$42 == 0) == 0), false); [line 221]\n APPLY_ABSTRACTION; [line 221]\n " shape="invhouse"] +194 [label="194: Prune (false branch) \n PRUNE(((n$42 == 0) == 0), false); [line 225]\n APPLY_ABSTRACTION; [line 225]\n " shape="invhouse"] 194 -> 184 ; -193 [label="193: Prune (true branch) \n PRUNE(((n$42 == 0) != 0), true); [line 221]\n " shape="invhouse"] +193 [label="193: Prune (true branch) \n PRUNE(((n$42 == 0) != 0), true); [line 225]\n " shape="invhouse"] 193 -> 192 ; -192 [label="192: Call _fun_printf \n n$43=_fun_printf(\"(0)HELLO WORLD!\":char *) [line 222]\n REMOVE_TEMPS(n$43); [line 222]\n APPLY_ABSTRACTION; [line 222]\n " shape="box"] +192 [label="192: Call _fun_printf \n n$43=_fun_printf(\"(0)HELLO WORLD!\":char *) [line 226]\n REMOVE_TEMPS(n$43); [line 226]\n APPLY_ABSTRACTION; [line 226]\n " shape="box"] 192 -> 184 ; -191 [label="191: Switch_stmt \n n$41=*&SIL_temp_conditional___185:int [line 219]\n NULLIFY(&SIL_temp_conditional___185,true); [line 219]\n *&value:int =n$41 [line 219]\n n$42=*&value:int [line 219]\n NULLIFY(&value,false); [line 219]\n " shape="box"] +191 [label="191: Switch_stmt \n n$41=*&SIL_temp_conditional___185:int [line 223]\n NULLIFY(&SIL_temp_conditional___185,true); [line 223]\n *&value:int =n$41 [line 223]\n n$42=*&value:int [line 223]\n NULLIFY(&value,false); [line 223]\n " shape="box"] 191 -> 193 ; 191 -> 194 ; -190 [label="190: ConditinalStmt Branch \n DECLARE_LOCALS(&SIL_temp_conditional___185); [line 219]\n *&SIL_temp_conditional___185:int =9 [line 219]\n APPLY_ABSTRACTION; [line 219]\n " shape="box"] +190 [label="190: ConditinalStmt Branch \n DECLARE_LOCALS(&SIL_temp_conditional___185); [line 223]\n *&SIL_temp_conditional___185:int =9 [line 223]\n APPLY_ABSTRACTION; [line 223]\n " shape="box"] 190 -> 185 ; -189 [label="189: ConditinalStmt Branch \n DECLARE_LOCALS(&SIL_temp_conditional___185); [line 219]\n *&SIL_temp_conditional___185:int =7 [line 219]\n APPLY_ABSTRACTION; [line 219]\n " shape="box"] +189 [label="189: ConditinalStmt Branch \n DECLARE_LOCALS(&SIL_temp_conditional___185); [line 223]\n *&SIL_temp_conditional___185:int =7 [line 223]\n APPLY_ABSTRACTION; [line 223]\n " shape="box"] 189 -> 185 ; -188 [label="188: Prune (false branch) \n PRUNE(((n$40 == 0) == 0), false); [line 219]\n REMOVE_TEMPS(n$40); [line 219]\n " shape="invhouse"] +188 [label="188: Prune (false branch) \n PRUNE(((n$40 == 0) == 0), false); [line 223]\n REMOVE_TEMPS(n$40); [line 223]\n " shape="invhouse"] 188 -> 190 ; -187 [label="187: Prune (true branch) \n PRUNE(((n$40 == 0) != 0), true); [line 219]\n REMOVE_TEMPS(n$40); [line 219]\n " shape="invhouse"] +187 [label="187: Prune (true branch) \n PRUNE(((n$40 == 0) != 0), true); [line 223]\n REMOVE_TEMPS(n$40); [line 223]\n " shape="invhouse"] 187 -> 189 ; -186 [label="186: BinaryOperatorStmt: EQ \n n$40=*&value:int [line 219]\n NULLIFY(&value,false); [line 219]\n " shape="box"] +186 [label="186: BinaryOperatorStmt: EQ \n n$40=*&value:int [line 223]\n NULLIFY(&value,false); [line 223]\n " shape="box"] 186 -> 187 ; @@ -45,136 +45,136 @@ digraph iCFG { 185 -> 191 ; -184 [label="184: Return Stmt \n *&return:int =0 [line 224]\n REMOVE_TEMPS(n$41,n$42); [line 224]\n APPLY_ABSTRACTION; [line 224]\n " shape="box"] +184 [label="184: Return Stmt \n *&return:int =0 [line 228]\n REMOVE_TEMPS(n$41,n$42); [line 228]\n APPLY_ABSTRACTION; [line 228]\n " shape="box"] 184 -> 183 ; 183 [label="183: Exit m11 \n " color=yellow style=filled] -182 [label="182: Start m11\nFormals: \nLocals: value:int \n DECLARE_LOCALS(&return,&value); [line 216]\n NULLIFY(&value,false); [line 216]\n " color=yellow style=filled] +182 [label="182: Start m11\nFormals: \nLocals: value:int \n DECLARE_LOCALS(&return,&value); [line 220]\n NULLIFY(&value,false); [line 220]\n " color=yellow style=filled] 182 -> 195 ; -181 [label="181: DeclStmt \n *&value:int =0 [line 209]\n NULLIFY(&value,false); [line 209]\n " shape="box"] +181 [label="181: DeclStmt \n *&value:int =0 [line 213]\n NULLIFY(&value,false); [line 213]\n " shape="box"] 181 -> 180 ; -180 [label="180: Switch_stmt \n *&value:int =7 [line 210]\n n$39=*&value:int [line 210]\n NULLIFY(&value,false); [line 210]\n " shape="box"] +180 [label="180: Switch_stmt \n *&value:int =7 [line 214]\n n$39=*&value:int [line 214]\n NULLIFY(&value,false); [line 214]\n " shape="box"] 180 -> 179 ; -179 [label="179: Return Stmt \n *&return:int =0 [line 213]\n REMOVE_TEMPS(n$39); [line 213]\n APPLY_ABSTRACTION; [line 213]\n " shape="box"] +179 [label="179: Return Stmt \n *&return:int =0 [line 217]\n REMOVE_TEMPS(n$39); [line 217]\n APPLY_ABSTRACTION; [line 217]\n " shape="box"] 179 -> 178 ; 178 [label="178: Exit m10 \n " color=yellow style=filled] -177 [label="177: Start m10\nFormals: \nLocals: value:int \n DECLARE_LOCALS(&return,&value); [line 207]\n NULLIFY(&value,false); [line 207]\n " color=yellow style=filled] +177 [label="177: Start m10\nFormals: \nLocals: value:int \n DECLARE_LOCALS(&return,&value); [line 211]\n NULLIFY(&value,false); [line 211]\n " color=yellow style=filled] 177 -> 181 ; -176 [label="176: DeclStmt \n *&value:int =0 [line 200]\n " shape="box"] +176 [label="176: DeclStmt \n *&value:int =0 [line 204]\n " shape="box"] 176 -> 175 ; -175 [label="175: Switch_stmt \n n$38=*&value:int [line 201]\n NULLIFY(&value,false); [line 201]\n " shape="box"] +175 [label="175: Switch_stmt \n n$38=*&value:int [line 205]\n NULLIFY(&value,false); [line 205]\n " shape="box"] 175 -> 174 ; -174 [label="174: Return Stmt \n *&return:int =0 [line 204]\n REMOVE_TEMPS(n$38); [line 204]\n APPLY_ABSTRACTION; [line 204]\n " shape="box"] +174 [label="174: Return Stmt \n *&return:int =0 [line 208]\n REMOVE_TEMPS(n$38); [line 208]\n APPLY_ABSTRACTION; [line 208]\n " shape="box"] 174 -> 173 ; 173 [label="173: Exit m9 \n " color=yellow style=filled] -172 [label="172: Start m9\nFormals: \nLocals: value:int \n DECLARE_LOCALS(&return,&value); [line 198]\n NULLIFY(&value,false); [line 198]\n " color=yellow style=filled] +172 [label="172: Start m9\nFormals: \nLocals: value:int \n DECLARE_LOCALS(&return,&value); [line 202]\n NULLIFY(&value,false); [line 202]\n " color=yellow style=filled] 172 -> 176 ; -171 [label="171: DeclStmt \n *&value:int =0 [line 174]\n APPLY_ABSTRACTION; [line 174]\n " shape="box"] +171 [label="171: DeclStmt \n *&value:int =0 [line 178]\n APPLY_ABSTRACTION; [line 178]\n " shape="box"] 171 -> 146 ; -170 [label="170: Prune (false branch) \n PRUNE(((n$35 == 0) == 0), false); [line 179]\n " shape="invhouse"] +170 [label="170: Prune (false branch) \n PRUNE(((n$35 == 0) == 0), false); [line 183]\n " shape="invhouse"] 170 -> 165 ; 170 -> 166 ; -169 [label="169: Prune (true branch) \n PRUNE(((n$35 == 0) != 0), true); [line 179]\n " shape="invhouse"] +169 [label="169: Prune (true branch) \n PRUNE(((n$35 == 0) != 0), true); [line 183]\n " shape="invhouse"] 169 -> 168 ; -168 [label="168: Call _fun_printf \n NULLIFY(&value,false); [line 180]\n n$37=_fun_printf(\"(0)HELLO WORLD!\":char *) [line 180]\n REMOVE_TEMPS(n$37); [line 180]\n " shape="box"] +168 [label="168: Call _fun_printf \n NULLIFY(&value,false); [line 184]\n n$37=_fun_printf(\"(0)HELLO WORLD!\":char *) [line 184]\n REMOVE_TEMPS(n$37); [line 184]\n " shape="box"] 168 -> 167 ; -167 [label="167: Return Stmt \n *&return:int =0 [line 181]\n APPLY_ABSTRACTION; [line 181]\n " shape="box"] +167 [label="167: Return Stmt \n *&return:int =0 [line 185]\n APPLY_ABSTRACTION; [line 185]\n " shape="box"] 167 -> 144 ; -166 [label="166: Prune (false branch) \n PRUNE(((n$35 == 1) == 0), false); [line 182]\n " shape="invhouse"] +166 [label="166: Prune (false branch) \n PRUNE(((n$35 == 1) == 0), false); [line 186]\n " shape="invhouse"] 166 -> 160 ; 166 -> 161 ; -165 [label="165: Prune (true branch) \n PRUNE(((n$35 == 1) != 0), true); [line 182]\n " shape="invhouse"] +165 [label="165: Prune (true branch) \n PRUNE(((n$35 == 1) != 0), true); [line 186]\n " shape="invhouse"] 165 -> 164 ; -164 [label="164: DeclStmt \n *&something:int =1 [line 184]\n " shape="box"] +164 [label="164: DeclStmt \n *&something:int =1 [line 188]\n " shape="box"] 164 -> 163 ; -163 [label="163: UnaryOperator \n n$36=*&something:int [line 185]\n *&something:int =(n$36 + 1) [line 185]\n REMOVE_TEMPS(n$36); [line 185]\n NULLIFY(&something,false); [line 185]\n APPLY_ABSTRACTION; [line 185]\n " shape="box"] +163 [label="163: UnaryOperator \n n$36=*&something:int [line 189]\n *&something:int =(n$36 + 1) [line 189]\n REMOVE_TEMPS(n$36); [line 189]\n NULLIFY(&something,false); [line 189]\n APPLY_ABSTRACTION; [line 189]\n " shape="box"] 163 -> 146 ; -162 [label="162: DeclStmt \n *&z:int =9 [line 189]\n NULLIFY(&a,false); [line 189]\n NULLIFY(&something,false); [line 189]\n NULLIFY(&z,false); [line 189]\n APPLY_ABSTRACTION; [line 189]\n " shape="box"] +162 [label="162: DeclStmt \n *&z:int =9 [line 193]\n NULLIFY(&a,false); [line 193]\n NULLIFY(&something,false); [line 193]\n NULLIFY(&z,false); [line 193]\n APPLY_ABSTRACTION; [line 193]\n " shape="box"] 162 -> 150 ; -161 [label="161: Prune (false branch) \n PRUNE(((n$35 == 2) == 0), false); [line 190]\n " shape="invhouse"] +161 [label="161: Prune (false branch) \n PRUNE(((n$35 == 2) == 0), false); [line 194]\n " shape="invhouse"] 161 -> 158 ; 161 -> 159 ; -160 [label="160: Prune (true branch) \n PRUNE(((n$35 == 2) != 0), true); [line 190]\n APPLY_ABSTRACTION; [line 190]\n " shape="invhouse"] +160 [label="160: Prune (true branch) \n PRUNE(((n$35 == 2) != 0), true); [line 194]\n APPLY_ABSTRACTION; [line 194]\n " shape="invhouse"] 160 -> 150 ; -159 [label="159: Prune (false branch) \n PRUNE(((n$35 == 3) == 0), false); [line 191]\n APPLY_ABSTRACTION; [line 191]\n " shape="invhouse"] +159 [label="159: Prune (false branch) \n PRUNE(((n$35 == 3) == 0), false); [line 195]\n APPLY_ABSTRACTION; [line 195]\n " shape="invhouse"] 159 -> 150 ; -158 [label="158: Prune (true branch) \n PRUNE(((n$35 == 3) != 0), true); [line 191]\n APPLY_ABSTRACTION; [line 191]\n " shape="invhouse"] +158 [label="158: Prune (true branch) \n PRUNE(((n$35 == 3) != 0), true); [line 195]\n APPLY_ABSTRACTION; [line 195]\n " shape="invhouse"] 158 -> 150 ; -157 [label="157: Switch_stmt \n n$35=*&SIL_temp_conditional___151:int [line 177]\n NULLIFY(&SIL_temp_conditional___151,true); [line 177]\n " shape="box"] +157 [label="157: Switch_stmt \n n$35=*&SIL_temp_conditional___151:int [line 181]\n NULLIFY(&SIL_temp_conditional___151,true); [line 181]\n " shape="box"] 157 -> 169 ; 157 -> 170 ; -156 [label="156: ConditinalStmt Branch \n DECLARE_LOCALS(&SIL_temp_conditional___151); [line 177]\n *&SIL_temp_conditional___151:int =2 [line 177]\n APPLY_ABSTRACTION; [line 177]\n " shape="box"] +156 [label="156: ConditinalStmt Branch \n DECLARE_LOCALS(&SIL_temp_conditional___151); [line 181]\n *&SIL_temp_conditional___151:int =2 [line 181]\n APPLY_ABSTRACTION; [line 181]\n " shape="box"] 156 -> 151 ; -155 [label="155: ConditinalStmt Branch \n DECLARE_LOCALS(&SIL_temp_conditional___151); [line 177]\n *&SIL_temp_conditional___151:int =1 [line 177]\n APPLY_ABSTRACTION; [line 177]\n " shape="box"] +155 [label="155: ConditinalStmt Branch \n DECLARE_LOCALS(&SIL_temp_conditional___151); [line 181]\n *&SIL_temp_conditional___151:int =1 [line 181]\n APPLY_ABSTRACTION; [line 181]\n " shape="box"] 155 -> 151 ; -154 [label="154: Prune (false branch) \n PRUNE(((n$34 == 0) == 0), false); [line 177]\n REMOVE_TEMPS(n$34); [line 177]\n " shape="invhouse"] +154 [label="154: Prune (false branch) \n PRUNE(((n$34 == 0) == 0), false); [line 181]\n REMOVE_TEMPS(n$34); [line 181]\n " shape="invhouse"] 154 -> 156 ; -153 [label="153: Prune (true branch) \n PRUNE(((n$34 == 0) != 0), true); [line 177]\n REMOVE_TEMPS(n$34); [line 177]\n " shape="invhouse"] +153 [label="153: Prune (true branch) \n PRUNE(((n$34 == 0) != 0), true); [line 181]\n REMOVE_TEMPS(n$34); [line 181]\n " shape="invhouse"] 153 -> 155 ; -152 [label="152: BinaryOperatorStmt: EQ \n n$34=_fun_getValue() [line 177]\n " shape="box"] +152 [label="152: BinaryOperatorStmt: EQ \n n$34=_fun_getValue() [line 181]\n " shape="box"] 152 -> 153 ; @@ -183,19 +183,19 @@ digraph iCFG { 151 -> 157 ; -150 [label="150: DeclStmt \n *&a:int =0 [line 193]\n REMOVE_TEMPS(n$35); [line 193]\n NULLIFY(&a,false); [line 193]\n APPLY_ABSTRACTION; [line 193]\n " shape="box"] +150 [label="150: DeclStmt \n *&a:int =0 [line 197]\n REMOVE_TEMPS(n$35); [line 197]\n NULLIFY(&a,false); [line 197]\n APPLY_ABSTRACTION; [line 197]\n " shape="box"] 150 -> 146 ; -149 [label="149: Prune (false branch) \n PRUNE(((n$33 < 10) == 0), false); [line 175]\n REMOVE_TEMPS(n$33); [line 175]\n " shape="invhouse"] +149 [label="149: Prune (false branch) \n PRUNE(((n$33 < 10) == 0), false); [line 179]\n REMOVE_TEMPS(n$33); [line 179]\n " shape="invhouse"] 149 -> 145 ; -148 [label="148: Prune (true branch) \n PRUNE(((n$33 < 10) != 0), true); [line 175]\n REMOVE_TEMPS(n$33); [line 175]\n " shape="invhouse"] +148 [label="148: Prune (true branch) \n PRUNE(((n$33 < 10) != 0), true); [line 179]\n REMOVE_TEMPS(n$33); [line 179]\n " shape="invhouse"] 148 -> 152 ; -147 [label="147: BinaryOperatorStmt: LT \n n$33=*&value:int [line 175]\n " shape="box"] +147 [label="147: BinaryOperatorStmt: LT \n n$33=*&value:int [line 179]\n " shape="box"] 147 -> 148 ; @@ -204,176 +204,176 @@ digraph iCFG { 146 -> 147 ; -145 [label="145: Return Stmt \n NULLIFY(&value,false); [line 195]\n *&return:int =0 [line 195]\n APPLY_ABSTRACTION; [line 195]\n " shape="box"] +145 [label="145: Return Stmt \n NULLIFY(&value,false); [line 199]\n *&return:int =0 [line 199]\n APPLY_ABSTRACTION; [line 199]\n " shape="box"] 145 -> 144 ; 144 [label="144: Exit m8 \n " color=yellow style=filled] -143 [label="143: Start m8\nFormals: \nLocals: value:int something:int z:int a:int \n DECLARE_LOCALS(&return,&value,&something,&z,&a); [line 172]\n NULLIFY(&a,false); [line 172]\n NULLIFY(&something,false); [line 172]\n NULLIFY(&value,false); [line 172]\n NULLIFY(&z,false); [line 172]\n " color=yellow style=filled] +143 [label="143: Start m8\nFormals: \nLocals: value:int something:int z:int a:int \n DECLARE_LOCALS(&return,&value,&something,&z,&a); [line 176]\n NULLIFY(&a,false); [line 176]\n NULLIFY(&something,false); [line 176]\n NULLIFY(&value,false); [line 176]\n NULLIFY(&z,false); [line 176]\n " color=yellow style=filled] 143 -> 171 ; -142 [label="142: DeclStmt \n *&value:int =0 [line 154]\n NULLIFY(&value,false); [line 154]\n " shape="box"] +142 [label="142: DeclStmt \n *&value:int =0 [line 158]\n NULLIFY(&value,false); [line 158]\n " shape="box"] 142 -> 129 ; -141 [label="141: Prune (false branch) \n PRUNE(((n$30 == 0) == 0), false); [line 157]\n " shape="invhouse"] +141 [label="141: Prune (false branch) \n PRUNE(((n$30 == 0) == 0), false); [line 161]\n " shape="invhouse"] 141 -> 137 ; 141 -> 138 ; -140 [label="140: Prune (true branch) \n PRUNE(((n$30 == 0) != 0), true); [line 157]\n " shape="invhouse"] +140 [label="140: Prune (true branch) \n PRUNE(((n$30 == 0) != 0), true); [line 161]\n " shape="invhouse"] 140 -> 139 ; -139 [label="139: Call _fun_printf \n n$32=_fun_printf(\"(0)HELLO WORLD!\":char *) [line 158]\n REMOVE_TEMPS(n$32); [line 158]\n APPLY_ABSTRACTION; [line 158]\n " shape="box"] +139 [label="139: Call _fun_printf \n n$32=_fun_printf(\"(0)HELLO WORLD!\":char *) [line 162]\n REMOVE_TEMPS(n$32); [line 162]\n APPLY_ABSTRACTION; [line 162]\n " shape="box"] 139 -> 128 ; -138 [label="138: Prune (false branch) \n PRUNE(((n$30 == 1) == 0), false); [line 160]\n " shape="invhouse"] +138 [label="138: Prune (false branch) \n PRUNE(((n$30 == 1) == 0), false); [line 164]\n " shape="invhouse"] 138 -> 132 ; 138 -> 133 ; -137 [label="137: Prune (true branch) \n PRUNE(((n$30 == 1) != 0), true); [line 160]\n " shape="invhouse"] +137 [label="137: Prune (true branch) \n PRUNE(((n$30 == 1) != 0), true); [line 164]\n " shape="invhouse"] 137 -> 136 ; -136 [label="136: DeclStmt \n *&something:int =1 [line 161]\n " shape="box"] +136 [label="136: DeclStmt \n *&something:int =1 [line 165]\n " shape="box"] 136 -> 135 ; -135 [label="135: UnaryOperator \n n$31=*&something:int [line 162]\n *&something:int =(n$31 + 1) [line 162]\n REMOVE_TEMPS(n$31); [line 162]\n NULLIFY(&something,false); [line 162]\n APPLY_ABSTRACTION; [line 162]\n " shape="box"] +135 [label="135: UnaryOperator \n n$31=*&something:int [line 166]\n *&something:int =(n$31 + 1) [line 166]\n REMOVE_TEMPS(n$31); [line 166]\n NULLIFY(&something,false); [line 166]\n APPLY_ABSTRACTION; [line 166]\n " shape="box"] 135 -> 128 ; -134 [label="134: DeclStmt \n *&z:int =9 [line 165]\n NULLIFY(&something,false); [line 165]\n NULLIFY(&value,false); [line 165]\n NULLIFY(&z,false); [line 165]\n APPLY_ABSTRACTION; [line 165]\n " shape="box"] +134 [label="134: DeclStmt \n *&z:int =9 [line 169]\n NULLIFY(&something,false); [line 169]\n NULLIFY(&value,false); [line 169]\n NULLIFY(&z,false); [line 169]\n APPLY_ABSTRACTION; [line 169]\n " shape="box"] 134 -> 128 ; -133 [label="133: Prune (false branch) \n PRUNE(((n$30 == 2) == 0), false); [line 166]\n " shape="invhouse"] +133 [label="133: Prune (false branch) \n PRUNE(((n$30 == 2) == 0), false); [line 170]\n " shape="invhouse"] 133 -> 130 ; 133 -> 131 ; -132 [label="132: Prune (true branch) \n PRUNE(((n$30 == 2) != 0), true); [line 166]\n APPLY_ABSTRACTION; [line 166]\n " shape="invhouse"] +132 [label="132: Prune (true branch) \n PRUNE(((n$30 == 2) != 0), true); [line 170]\n APPLY_ABSTRACTION; [line 170]\n " shape="invhouse"] 132 -> 128 ; -131 [label="131: Prune (false branch) \n PRUNE(((n$30 == 3) == 0), false); [line 167]\n APPLY_ABSTRACTION; [line 167]\n " shape="invhouse"] +131 [label="131: Prune (false branch) \n PRUNE(((n$30 == 3) == 0), false); [line 171]\n APPLY_ABSTRACTION; [line 171]\n " shape="invhouse"] 131 -> 128 ; -130 [label="130: Prune (true branch) \n PRUNE(((n$30 == 3) != 0), true); [line 167]\n APPLY_ABSTRACTION; [line 167]\n " shape="invhouse"] +130 [label="130: Prune (true branch) \n PRUNE(((n$30 == 3) != 0), true); [line 171]\n APPLY_ABSTRACTION; [line 171]\n " shape="invhouse"] 130 -> 128 ; -129 [label="129: Switch_stmt \n n$30=_fun_getValue() [line 155]\n " shape="box"] +129 [label="129: Switch_stmt \n n$30=_fun_getValue() [line 159]\n " shape="box"] 129 -> 140 ; 129 -> 141 ; -128 [label="128: Return Stmt \n *&return:int =0 [line 169]\n REMOVE_TEMPS(n$30); [line 169]\n APPLY_ABSTRACTION; [line 169]\n " shape="box"] +128 [label="128: Return Stmt \n *&return:int =0 [line 173]\n REMOVE_TEMPS(n$30); [line 173]\n APPLY_ABSTRACTION; [line 173]\n " shape="box"] 128 -> 127 ; 127 [label="127: Exit m7 \n " color=yellow style=filled] -126 [label="126: Start m7\nFormals: \nLocals: value:int something:int z:int \n DECLARE_LOCALS(&return,&value,&something,&z); [line 152]\n NULLIFY(&something,false); [line 152]\n NULLIFY(&value,false); [line 152]\n NULLIFY(&z,false); [line 152]\n " color=yellow style=filled] +126 [label="126: Start m7\nFormals: \nLocals: value:int something:int z:int \n DECLARE_LOCALS(&return,&value,&something,&z); [line 156]\n NULLIFY(&something,false); [line 156]\n NULLIFY(&value,false); [line 156]\n NULLIFY(&z,false); [line 156]\n " color=yellow style=filled] 126 -> 142 ; -125 [label="125: Return Stmt \n *&return:int =1 [line 149]\n APPLY_ABSTRACTION; [line 149]\n " shape="box"] +125 [label="125: Return Stmt \n *&return:int =1 [line 153]\n APPLY_ABSTRACTION; [line 153]\n " shape="box"] 125 -> 124 ; 124 [label="124: Exit getValue \n " color=yellow style=filled] -123 [label="123: Start getValue\nFormals: \nLocals: \n DECLARE_LOCALS(&return); [line 147]\n " color=yellow style=filled] +123 [label="123: Start getValue\nFormals: \nLocals: \n DECLARE_LOCALS(&return); [line 151]\n " color=yellow style=filled] 123 -> 125 ; -122 [label="122: DeclStmt \n *&value:int =0 [line 128]\n " shape="box"] +122 [label="122: DeclStmt \n *&value:int =0 [line 132]\n " shape="box"] 122 -> 104 ; -121 [label="121: Prune (false branch) \n PRUNE(((n$27 == 0) == 0), false); [line 131]\n " shape="invhouse"] +121 [label="121: Prune (false branch) \n PRUNE(((n$27 == 0) == 0), false); [line 135]\n " shape="invhouse"] 121 -> 117 ; 121 -> 118 ; -120 [label="120: Prune (true branch) \n PRUNE(((n$27 == 0) != 0), true); [line 131]\n " shape="invhouse"] +120 [label="120: Prune (true branch) \n PRUNE(((n$27 == 0) != 0), true); [line 135]\n " shape="invhouse"] 120 -> 119 ; -119 [label="119: Call _fun_printf \n n$29=_fun_printf(\"(0)HELLO WORLD!\":char *) [line 132]\n REMOVE_TEMPS(n$29); [line 132]\n APPLY_ABSTRACTION; [line 132]\n " shape="box"] +119 [label="119: Call _fun_printf \n n$29=_fun_printf(\"(0)HELLO WORLD!\":char *) [line 136]\n REMOVE_TEMPS(n$29); [line 136]\n APPLY_ABSTRACTION; [line 136]\n " shape="box"] 119 -> 102 ; -118 [label="118: Prune (false branch) \n PRUNE(((n$27 == 1) == 0), false); [line 134]\n " shape="invhouse"] +118 [label="118: Prune (false branch) \n PRUNE(((n$27 == 1) == 0), false); [line 138]\n " shape="invhouse"] 118 -> 112 ; 118 -> 113 ; -117 [label="117: Prune (true branch) \n PRUNE(((n$27 == 1) != 0), true); [line 134]\n " shape="invhouse"] +117 [label="117: Prune (true branch) \n PRUNE(((n$27 == 1) != 0), true); [line 138]\n " shape="invhouse"] 117 -> 116 ; -116 [label="116: DeclStmt \n *&something:int =1 [line 135]\n " shape="box"] +116 [label="116: DeclStmt \n *&something:int =1 [line 139]\n " shape="box"] 116 -> 115 ; -115 [label="115: UnaryOperator \n n$28=*&something:int [line 136]\n *&something:int =(n$28 + 1) [line 136]\n REMOVE_TEMPS(n$28); [line 136]\n NULLIFY(&something,false); [line 136]\n APPLY_ABSTRACTION; [line 136]\n " shape="box"] +115 [label="115: UnaryOperator \n n$28=*&something:int [line 140]\n *&something:int =(n$28 + 1) [line 140]\n REMOVE_TEMPS(n$28); [line 140]\n NULLIFY(&something,false); [line 140]\n APPLY_ABSTRACTION; [line 140]\n " shape="box"] 115 -> 102 ; -114 [label="114: DeclStmt \n *&z:int =9 [line 139]\n NULLIFY(&something,false); [line 139]\n NULLIFY(&value,false); [line 139]\n NULLIFY(&z,false); [line 139]\n APPLY_ABSTRACTION; [line 139]\n " shape="box"] +114 [label="114: DeclStmt \n *&z:int =9 [line 143]\n NULLIFY(&something,false); [line 143]\n NULLIFY(&value,false); [line 143]\n NULLIFY(&z,false); [line 143]\n APPLY_ABSTRACTION; [line 143]\n " shape="box"] 114 -> 102 ; -113 [label="113: Prune (false branch) \n PRUNE(((n$27 == 2) == 0), false); [line 140]\n " shape="invhouse"] +113 [label="113: Prune (false branch) \n PRUNE(((n$27 == 2) == 0), false); [line 144]\n " shape="invhouse"] 113 -> 110 ; 113 -> 111 ; -112 [label="112: Prune (true branch) \n PRUNE(((n$27 == 2) != 0), true); [line 140]\n APPLY_ABSTRACTION; [line 140]\n " shape="invhouse"] +112 [label="112: Prune (true branch) \n PRUNE(((n$27 == 2) != 0), true); [line 144]\n APPLY_ABSTRACTION; [line 144]\n " shape="invhouse"] 112 -> 102 ; -111 [label="111: Prune (false branch) \n PRUNE(((n$27 == 3) == 0), false); [line 141]\n APPLY_ABSTRACTION; [line 141]\n " shape="invhouse"] +111 [label="111: Prune (false branch) \n PRUNE(((n$27 == 3) == 0), false); [line 145]\n APPLY_ABSTRACTION; [line 145]\n " shape="invhouse"] 111 -> 102 ; -110 [label="110: Prune (true branch) \n PRUNE(((n$27 == 3) != 0), true); [line 141]\n APPLY_ABSTRACTION; [line 141]\n " shape="invhouse"] +110 [label="110: Prune (true branch) \n PRUNE(((n$27 == 3) != 0), true); [line 145]\n APPLY_ABSTRACTION; [line 145]\n " shape="invhouse"] 110 -> 102 ; -109 [label="109: Switch_stmt \n n$27=*&SIL_temp_conditional___103:int [line 129]\n NULLIFY(&SIL_temp_conditional___103,true); [line 129]\n " shape="box"] +109 [label="109: Switch_stmt \n n$27=*&SIL_temp_conditional___103:int [line 133]\n NULLIFY(&SIL_temp_conditional___103,true); [line 133]\n " shape="box"] 109 -> 120 ; 109 -> 121 ; -108 [label="108: ConditinalStmt Branch \n DECLARE_LOCALS(&SIL_temp_conditional___103); [line 129]\n *&SIL_temp_conditional___103:int =0 [line 129]\n APPLY_ABSTRACTION; [line 129]\n " shape="box"] +108 [label="108: ConditinalStmt Branch \n DECLARE_LOCALS(&SIL_temp_conditional___103); [line 133]\n *&SIL_temp_conditional___103:int =0 [line 133]\n APPLY_ABSTRACTION; [line 133]\n " shape="box"] 108 -> 103 ; -107 [label="107: ConditinalStmt Branch \n DECLARE_LOCALS(&SIL_temp_conditional___103); [line 129]\n *&SIL_temp_conditional___103:int =1 [line 129]\n APPLY_ABSTRACTION; [line 129]\n " shape="box"] +107 [label="107: ConditinalStmt Branch \n DECLARE_LOCALS(&SIL_temp_conditional___103); [line 133]\n *&SIL_temp_conditional___103:int =1 [line 133]\n APPLY_ABSTRACTION; [line 133]\n " shape="box"] 107 -> 103 ; -106 [label="106: Prune (false branch) \n PRUNE(((n$26 > 0) == 0), false); [line 129]\n REMOVE_TEMPS(n$26); [line 129]\n " shape="invhouse"] +106 [label="106: Prune (false branch) \n PRUNE(((n$26 > 0) == 0), false); [line 133]\n REMOVE_TEMPS(n$26); [line 133]\n " shape="invhouse"] 106 -> 108 ; -105 [label="105: Prune (true branch) \n PRUNE(((n$26 > 0) != 0), true); [line 129]\n REMOVE_TEMPS(n$26); [line 129]\n " shape="invhouse"] +105 [label="105: Prune (true branch) \n PRUNE(((n$26 > 0) != 0), true); [line 133]\n REMOVE_TEMPS(n$26); [line 133]\n " shape="invhouse"] 105 -> 107 ; -104 [label="104: BinaryOperatorStmt: GT \n n$26=*&value:int [line 129]\n NULLIFY(&value,false); [line 129]\n " shape="box"] +104 [label="104: BinaryOperatorStmt: GT \n n$26=*&value:int [line 133]\n NULLIFY(&value,false); [line 133]\n " shape="box"] 104 -> 105 ; @@ -382,407 +382,407 @@ digraph iCFG { 103 -> 109 ; -102 [label="102: Return Stmt \n *&return:int =0 [line 143]\n REMOVE_TEMPS(n$27); [line 143]\n APPLY_ABSTRACTION; [line 143]\n " shape="box"] +102 [label="102: Return Stmt \n *&return:int =0 [line 147]\n REMOVE_TEMPS(n$27); [line 147]\n APPLY_ABSTRACTION; [line 147]\n " shape="box"] 102 -> 101 ; 101 [label="101: Exit m6 \n " color=yellow style=filled] -100 [label="100: Start m6\nFormals: \nLocals: value:int something:int z:int \n DECLARE_LOCALS(&return,&value,&something,&z); [line 126]\n NULLIFY(&something,false); [line 126]\n NULLIFY(&value,false); [line 126]\n NULLIFY(&z,false); [line 126]\n " color=yellow style=filled] +100 [label="100: Start m6\nFormals: \nLocals: value:int something:int z:int \n DECLARE_LOCALS(&return,&value,&something,&z); [line 130]\n NULLIFY(&something,false); [line 130]\n NULLIFY(&value,false); [line 130]\n NULLIFY(&z,false); [line 130]\n " color=yellow style=filled] 100 -> 122 ; -99 [label="99: DeclStmt \n *&value:int =0 [line 110]\n APPLY_ABSTRACTION; [line 110]\n " shape="box"] +99 [label="99: DeclStmt \n *&value:int =0 [line 114]\n APPLY_ABSTRACTION; [line 114]\n " shape="box"] 99 -> 88 ; -98 [label="98: DeclStmt \n *&x:int =1 [line 113]\n NULLIFY(&x,false); [line 113]\n " shape="box"] +98 [label="98: DeclStmt \n *&x:int =1 [line 117]\n NULLIFY(&x,false); [line 117]\n " shape="box"] 98 -> 97 ; -97 [label="97: Call _fun_printf \n n$25=_fun_printf(\"(out)HELLO WORLD!\":char *) [line 114]\n REMOVE_TEMPS(n$25); [line 114]\n " shape="box"] +97 [label="97: Call _fun_printf \n n$25=_fun_printf(\"(out)HELLO WORLD!\":char *) [line 118]\n REMOVE_TEMPS(n$25); [line 118]\n " shape="box"] 97 -> 96 ; -96 [label="96: BinaryOperatorStmt: Assign \n n$24=*&value:int [line 115]\n *&x:int =(n$24 + 1) [line 115]\n REMOVE_TEMPS(n$24); [line 115]\n NULLIFY(&x,false); [line 115]\n APPLY_ABSTRACTION; [line 115]\n " shape="box"] +96 [label="96: BinaryOperatorStmt: Assign \n n$24=*&value:int [line 119]\n *&x:int =(n$24 + 1) [line 119]\n REMOVE_TEMPS(n$24); [line 119]\n NULLIFY(&x,false); [line 119]\n APPLY_ABSTRACTION; [line 119]\n " shape="box"] 96 -> 88 ; -95 [label="95: Prune (false branch) \n PRUNE(((n$22 == 0) == 0), false); [line 117]\n APPLY_ABSTRACTION; [line 117]\n " shape="invhouse"] +95 [label="95: Prune (false branch) \n PRUNE(((n$22 == 0) == 0), false); [line 121]\n APPLY_ABSTRACTION; [line 121]\n " shape="invhouse"] 95 -> 88 ; -94 [label="94: Prune (true branch) \n PRUNE(((n$22 == 0) != 0), true); [line 117]\n " shape="invhouse"] +94 [label="94: Prune (true branch) \n PRUNE(((n$22 == 0) != 0), true); [line 121]\n " shape="invhouse"] 94 -> 93 ; -93 [label="93: Call _fun_printf \n n$23=_fun_printf(\"(0)HELLO WORLD!\":char *) [line 118]\n REMOVE_TEMPS(n$23); [line 118]\n APPLY_ABSTRACTION; [line 118]\n " shape="box"] +93 [label="93: Call _fun_printf \n n$23=_fun_printf(\"(0)HELLO WORLD!\":char *) [line 122]\n REMOVE_TEMPS(n$23); [line 122]\n APPLY_ABSTRACTION; [line 122]\n " shape="box"] 93 -> 88 ; -92 [label="92: Switch_stmt \n n$22=*&value:int [line 112]\n " shape="box"] +92 [label="92: Switch_stmt \n n$22=*&value:int [line 116]\n " shape="box"] 92 -> 94 ; 92 -> 95 ; -91 [label="91: Prune (false branch) \n PRUNE(((n$21 < 10) == 0), false); [line 111]\n REMOVE_TEMPS(n$21); [line 111]\n " shape="invhouse"] +91 [label="91: Prune (false branch) \n PRUNE(((n$21 < 10) == 0), false); [line 115]\n REMOVE_TEMPS(n$21); [line 115]\n " shape="invhouse"] 91 -> 87 ; -90 [label="90: Prune (true branch) \n PRUNE(((n$21 < 10) != 0), true); [line 111]\n REMOVE_TEMPS(n$21); [line 111]\n " shape="invhouse"] +90 [label="90: Prune (true branch) \n PRUNE(((n$21 < 10) != 0), true); [line 115]\n REMOVE_TEMPS(n$21); [line 115]\n " shape="invhouse"] 90 -> 92 ; -89 [label="89: BinaryOperatorStmt: LT \n n$21=*&value:int [line 111]\n " shape="box"] +89 [label="89: BinaryOperatorStmt: LT \n n$21=*&value:int [line 115]\n " shape="box"] 89 -> 90 ; 89 -> 91 ; -88 [label="88: + \n REMOVE_TEMPS(n$22); [line 111]\n " ] +88 [label="88: + \n REMOVE_TEMPS(n$22); [line 115]\n " ] 88 -> 89 ; -87 [label="87: Return Stmt \n NULLIFY(&value,false); [line 122]\n *&return:int =0 [line 122]\n APPLY_ABSTRACTION; [line 122]\n " shape="box"] +87 [label="87: Return Stmt \n NULLIFY(&value,false); [line 126]\n *&return:int =0 [line 126]\n APPLY_ABSTRACTION; [line 126]\n " shape="box"] 87 -> 86 ; 86 [label="86: Exit m5 \n " color=yellow style=filled] -85 [label="85: Start m5\nFormals: \nLocals: value:int x:int \n DECLARE_LOCALS(&return,&value,&x); [line 108]\n NULLIFY(&value,false); [line 108]\n NULLIFY(&x,false); [line 108]\n " color=yellow style=filled] +85 [label="85: Start m5\nFormals: \nLocals: value:int x:int \n DECLARE_LOCALS(&return,&value,&x); [line 112]\n NULLIFY(&value,false); [line 112]\n NULLIFY(&x,false); [line 112]\n " color=yellow style=filled] 85 -> 99 ; -84 [label="84: DeclStmt \n *&value:int =0 [line 83]\n " shape="box"] +84 [label="84: DeclStmt \n *&value:int =0 [line 87]\n " shape="box"] 84 -> 66 ; -83 [label="83: DeclStmt \n *&x:int =1 [line 86]\n NULLIFY(&something,false); [line 86]\n NULLIFY(&x,false); [line 86]\n NULLIFY(&z,false); [line 86]\n " shape="box"] +83 [label="83: DeclStmt \n *&x:int =1 [line 90]\n NULLIFY(&something,false); [line 90]\n NULLIFY(&x,false); [line 90]\n NULLIFY(&z,false); [line 90]\n " shape="box"] 83 -> 82 ; -82 [label="82: Call _fun_printf \n n$20=_fun_printf(\"(out)HELLO WORLD!\":char *) [line 87]\n REMOVE_TEMPS(n$20); [line 87]\n " shape="box"] +82 [label="82: Call _fun_printf \n n$20=_fun_printf(\"(out)HELLO WORLD!\":char *) [line 91]\n REMOVE_TEMPS(n$20); [line 91]\n " shape="box"] 82 -> 81 ; -81 [label="81: BinaryOperatorStmt: Assign \n n$19=*&value:int [line 88]\n *&x:int =(n$19 + 1) [line 88]\n REMOVE_TEMPS(n$19); [line 88]\n NULLIFY(&value,false); [line 88]\n NULLIFY(&x,false); [line 88]\n APPLY_ABSTRACTION; [line 88]\n " shape="box"] +81 [label="81: BinaryOperatorStmt: Assign \n n$19=*&value:int [line 92]\n *&x:int =(n$19 + 1) [line 92]\n REMOVE_TEMPS(n$19); [line 92]\n NULLIFY(&value,false); [line 92]\n NULLIFY(&x,false); [line 92]\n APPLY_ABSTRACTION; [line 92]\n " shape="box"] 81 -> 78 ; -80 [label="80: Prune (false branch) \n PRUNE(((n$16 == 0) == 0), false); [line 89]\n " shape="invhouse"] +80 [label="80: Prune (false branch) \n PRUNE(((n$16 == 0) == 0), false); [line 93]\n " shape="invhouse"] 80 -> 75 ; 80 -> 76 ; -79 [label="79: Prune (true branch) \n PRUNE(((n$16 == 0) != 0), true); [line 89]\n APPLY_ABSTRACTION; [line 89]\n " shape="invhouse"] +79 [label="79: Prune (true branch) \n PRUNE(((n$16 == 0) != 0), true); [line 93]\n APPLY_ABSTRACTION; [line 93]\n " shape="invhouse"] 79 -> 78 ; -78 [label="78: Call _fun_printf \n n$18=_fun_printf(\"(0)HELLO WORLD!\":char *) [line 90]\n REMOVE_TEMPS(n$18); [line 90]\n APPLY_ABSTRACTION; [line 90]\n " shape="box"] +78 [label="78: Call _fun_printf \n n$18=_fun_printf(\"(0)HELLO WORLD!\":char *) [line 94]\n REMOVE_TEMPS(n$18); [line 94]\n APPLY_ABSTRACTION; [line 94]\n " shape="box"] 78 -> 65 ; -77 [label="77: DeclStmt \n *&z:int =9 [line 92]\n NULLIFY(&something,false); [line 92]\n NULLIFY(&value,false); [line 92]\n NULLIFY(&x,false); [line 92]\n NULLIFY(&z,false); [line 92]\n APPLY_ABSTRACTION; [line 92]\n " shape="box"] +77 [label="77: DeclStmt \n *&z:int =9 [line 96]\n NULLIFY(&something,false); [line 96]\n NULLIFY(&value,false); [line 96]\n NULLIFY(&x,false); [line 96]\n NULLIFY(&z,false); [line 96]\n APPLY_ABSTRACTION; [line 96]\n " shape="box"] 77 -> 74 ; -76 [label="76: Prune (false branch) \n PRUNE(((n$16 == 1) == 0), false); [line 95]\n " shape="invhouse"] +76 [label="76: Prune (false branch) \n PRUNE(((n$16 == 1) == 0), false); [line 99]\n " shape="invhouse"] 76 -> 70 ; 76 -> 71 ; -75 [label="75: Prune (true branch) \n PRUNE(((n$16 == 1) != 0), true); [line 95]\n APPLY_ABSTRACTION; [line 95]\n " shape="invhouse"] +75 [label="75: Prune (true branch) \n PRUNE(((n$16 == 1) != 0), true); [line 99]\n APPLY_ABSTRACTION; [line 99]\n " shape="invhouse"] 75 -> 74 ; -74 [label="74: DeclStmt \n *&something:int =1 [line 96]\n " shape="box"] +74 [label="74: DeclStmt \n *&something:int =1 [line 100]\n " shape="box"] 74 -> 73 ; -73 [label="73: UnaryOperator \n n$17=*&something:int [line 97]\n *&something:int =(n$17 + 1) [line 97]\n REMOVE_TEMPS(n$17); [line 97]\n NULLIFY(&something,false); [line 97]\n " shape="box"] +73 [label="73: UnaryOperator \n n$17=*&something:int [line 101]\n *&something:int =(n$17 + 1) [line 101]\n REMOVE_TEMPS(n$17); [line 101]\n NULLIFY(&something,false); [line 101]\n " shape="box"] 73 -> 72 ; -72 [label="72: BinaryOperatorStmt: Assign \n *&z:int =42 [line 99]\n NULLIFY(&z,false); [line 99]\n APPLY_ABSTRACTION; [line 99]\n " shape="box"] +72 [label="72: BinaryOperatorStmt: Assign \n *&z:int =42 [line 103]\n NULLIFY(&z,false); [line 103]\n APPLY_ABSTRACTION; [line 103]\n " shape="box"] 72 -> 65 ; -71 [label="71: Prune (false branch) \n PRUNE(((n$16 == 2) == 0), false); [line 101]\n " shape="invhouse"] +71 [label="71: Prune (false branch) \n PRUNE(((n$16 == 2) == 0), false); [line 105]\n " shape="invhouse"] 71 -> 68 ; 71 -> 69 ; -70 [label="70: Prune (true branch) \n PRUNE(((n$16 == 2) != 0), true); [line 101]\n APPLY_ABSTRACTION; [line 101]\n " shape="invhouse"] +70 [label="70: Prune (true branch) \n PRUNE(((n$16 == 2) != 0), true); [line 105]\n APPLY_ABSTRACTION; [line 105]\n " shape="invhouse"] 70 -> 65 ; -69 [label="69: Prune (false branch) \n PRUNE(((n$16 == 3) == 0), false); [line 102]\n " shape="invhouse"] +69 [label="69: Prune (false branch) \n PRUNE(((n$16 == 3) == 0), false); [line 106]\n " shape="invhouse"] 69 -> 67 ; -68 [label="68: Prune (true branch) \n PRUNE(((n$16 == 3) != 0), true); [line 102]\n APPLY_ABSTRACTION; [line 102]\n " shape="invhouse"] +68 [label="68: Prune (true branch) \n PRUNE(((n$16 == 3) != 0), true); [line 106]\n APPLY_ABSTRACTION; [line 106]\n " shape="invhouse"] 68 -> 65 ; -67 [label="67: DefaultStmt_placeholder \n APPLY_ABSTRACTION; [line 93]\n " shape="box"] +67 [label="67: DefaultStmt_placeholder \n APPLY_ABSTRACTION; [line 97]\n " shape="box"] 67 -> 74 ; -66 [label="66: Switch_stmt \n n$16=*&value:int [line 84]\n NULLIFY(&value,false); [line 84]\n " shape="box"] +66 [label="66: Switch_stmt \n n$16=*&value:int [line 88]\n NULLIFY(&value,false); [line 88]\n " shape="box"] 66 -> 79 ; 66 -> 80 ; -65 [label="65: Return Stmt \n *&return:int =0 [line 104]\n REMOVE_TEMPS(n$16); [line 104]\n APPLY_ABSTRACTION; [line 104]\n " shape="box"] +65 [label="65: Return Stmt \n *&return:int =0 [line 108]\n REMOVE_TEMPS(n$16); [line 108]\n APPLY_ABSTRACTION; [line 108]\n " shape="box"] 65 -> 64 ; 64 [label="64: Exit m4 \n " color=yellow style=filled] -63 [label="63: Start m4\nFormals: \nLocals: value:int x:int z:int something:int \n DECLARE_LOCALS(&return,&value,&x,&z,&something); [line 81]\n NULLIFY(&something,false); [line 81]\n NULLIFY(&value,false); [line 81]\n NULLIFY(&x,false); [line 81]\n NULLIFY(&z,false); [line 81]\n " color=yellow style=filled] +63 [label="63: Start m4\nFormals: \nLocals: value:int x:int z:int something:int \n DECLARE_LOCALS(&return,&value,&x,&z,&something); [line 85]\n NULLIFY(&something,false); [line 85]\n NULLIFY(&value,false); [line 85]\n NULLIFY(&x,false); [line 85]\n NULLIFY(&z,false); [line 85]\n " color=yellow style=filled] 63 -> 84 ; -62 [label="62: DeclStmt \n *&value:int =0 [line 62]\n " shape="box"] +62 [label="62: DeclStmt \n *&value:int =0 [line 66]\n " shape="box"] 62 -> 49 ; -61 [label="61: Prune (false branch) \n PRUNE(((n$13 == 0) == 0), false); [line 65]\n " shape="invhouse"] +61 [label="61: Prune (false branch) \n PRUNE(((n$13 == 0) == 0), false); [line 69]\n " shape="invhouse"] 61 -> 57 ; 61 -> 58 ; -60 [label="60: Prune (true branch) \n PRUNE(((n$13 == 0) != 0), true); [line 65]\n " shape="invhouse"] +60 [label="60: Prune (true branch) \n PRUNE(((n$13 == 0) != 0), true); [line 69]\n " shape="invhouse"] 60 -> 59 ; -59 [label="59: Call _fun_printf \n n$15=_fun_printf(\"(0)HELLO WORLD!\":char *) [line 66]\n REMOVE_TEMPS(n$15); [line 66]\n APPLY_ABSTRACTION; [line 66]\n " shape="box"] +59 [label="59: Call _fun_printf \n n$15=_fun_printf(\"(0)HELLO WORLD!\":char *) [line 70]\n REMOVE_TEMPS(n$15); [line 70]\n APPLY_ABSTRACTION; [line 70]\n " shape="box"] 59 -> 48 ; -58 [label="58: Prune (false branch) \n PRUNE(((n$13 == 1) == 0), false); [line 68]\n " shape="invhouse"] +58 [label="58: Prune (false branch) \n PRUNE(((n$13 == 1) == 0), false); [line 72]\n " shape="invhouse"] 58 -> 52 ; 58 -> 53 ; -57 [label="57: Prune (true branch) \n PRUNE(((n$13 == 1) != 0), true); [line 68]\n " shape="invhouse"] +57 [label="57: Prune (true branch) \n PRUNE(((n$13 == 1) != 0), true); [line 72]\n " shape="invhouse"] 57 -> 56 ; -56 [label="56: DeclStmt \n *&something:int =1 [line 69]\n " shape="box"] +56 [label="56: DeclStmt \n *&something:int =1 [line 73]\n " shape="box"] 56 -> 55 ; -55 [label="55: UnaryOperator \n n$14=*&something:int [line 70]\n *&something:int =(n$14 + 1) [line 70]\n REMOVE_TEMPS(n$14); [line 70]\n NULLIFY(&something,false); [line 70]\n APPLY_ABSTRACTION; [line 70]\n " shape="box"] +55 [label="55: UnaryOperator \n n$14=*&something:int [line 74]\n *&something:int =(n$14 + 1) [line 74]\n REMOVE_TEMPS(n$14); [line 74]\n NULLIFY(&something,false); [line 74]\n APPLY_ABSTRACTION; [line 74]\n " shape="box"] 55 -> 48 ; -54 [label="54: DeclStmt \n *&z:int =9 [line 73]\n NULLIFY(&something,false); [line 73]\n NULLIFY(&value,false); [line 73]\n NULLIFY(&z,false); [line 73]\n APPLY_ABSTRACTION; [line 73]\n " shape="box"] +54 [label="54: DeclStmt \n *&z:int =9 [line 77]\n NULLIFY(&something,false); [line 77]\n NULLIFY(&value,false); [line 77]\n NULLIFY(&z,false); [line 77]\n APPLY_ABSTRACTION; [line 77]\n " shape="box"] 54 -> 48 ; -53 [label="53: Prune (false branch) \n PRUNE(((n$13 == 2) == 0), false); [line 74]\n " shape="invhouse"] +53 [label="53: Prune (false branch) \n PRUNE(((n$13 == 2) == 0), false); [line 78]\n " shape="invhouse"] 53 -> 50 ; 53 -> 51 ; -52 [label="52: Prune (true branch) \n PRUNE(((n$13 == 2) != 0), true); [line 74]\n APPLY_ABSTRACTION; [line 74]\n " shape="invhouse"] +52 [label="52: Prune (true branch) \n PRUNE(((n$13 == 2) != 0), true); [line 78]\n APPLY_ABSTRACTION; [line 78]\n " shape="invhouse"] 52 -> 48 ; -51 [label="51: Prune (false branch) \n PRUNE(((n$13 == 3) == 0), false); [line 75]\n APPLY_ABSTRACTION; [line 75]\n " shape="invhouse"] +51 [label="51: Prune (false branch) \n PRUNE(((n$13 == 3) == 0), false); [line 79]\n APPLY_ABSTRACTION; [line 79]\n " shape="invhouse"] 51 -> 48 ; -50 [label="50: Prune (true branch) \n PRUNE(((n$13 == 3) != 0), true); [line 75]\n APPLY_ABSTRACTION; [line 75]\n " shape="invhouse"] +50 [label="50: Prune (true branch) \n PRUNE(((n$13 == 3) != 0), true); [line 79]\n APPLY_ABSTRACTION; [line 79]\n " shape="invhouse"] 50 -> 48 ; -49 [label="49: Switch_stmt \n n$13=*&value:int [line 63]\n NULLIFY(&value,false); [line 63]\n " shape="box"] +49 [label="49: Switch_stmt \n n$13=*&value:int [line 67]\n NULLIFY(&value,false); [line 67]\n " shape="box"] 49 -> 60 ; 49 -> 61 ; -48 [label="48: Return Stmt \n *&return:int =0 [line 77]\n REMOVE_TEMPS(n$13); [line 77]\n APPLY_ABSTRACTION; [line 77]\n " shape="box"] +48 [label="48: Return Stmt \n *&return:int =0 [line 81]\n REMOVE_TEMPS(n$13); [line 81]\n APPLY_ABSTRACTION; [line 81]\n " shape="box"] 48 -> 47 ; 47 [label="47: Exit m3 \n " color=yellow style=filled] -46 [label="46: Start m3\nFormals: \nLocals: value:int something:int z:int \n DECLARE_LOCALS(&return,&value,&something,&z); [line 60]\n NULLIFY(&something,false); [line 60]\n NULLIFY(&value,false); [line 60]\n NULLIFY(&z,false); [line 60]\n " color=yellow style=filled] +46 [label="46: Start m3\nFormals: \nLocals: value:int something:int z:int \n DECLARE_LOCALS(&return,&value,&something,&z); [line 64]\n NULLIFY(&something,false); [line 64]\n NULLIFY(&value,false); [line 64]\n NULLIFY(&z,false); [line 64]\n " color=yellow style=filled] 46 -> 62 ; -45 [label="45: DeclStmt \n *&value:int =0 [line 35]\n " shape="box"] +45 [label="45: DeclStmt \n *&value:int =0 [line 39]\n " shape="box"] 45 -> 27 ; -44 [label="44: DeclStmt \n *&x:int =1 [line 38]\n NULLIFY(&something,false); [line 38]\n NULLIFY(&x,false); [line 38]\n NULLIFY(&z,false); [line 38]\n " shape="box"] +44 [label="44: DeclStmt \n *&x:int =1 [line 42]\n NULLIFY(&something,false); [line 42]\n NULLIFY(&x,false); [line 42]\n NULLIFY(&z,false); [line 42]\n " shape="box"] 44 -> 43 ; -43 [label="43: Call _fun_printf \n n$12=_fun_printf(\"(out)HELLO WORLD!\":char *) [line 39]\n REMOVE_TEMPS(n$12); [line 39]\n " shape="box"] +43 [label="43: Call _fun_printf \n n$12=_fun_printf(\"(out)HELLO WORLD!\":char *) [line 43]\n REMOVE_TEMPS(n$12); [line 43]\n " shape="box"] 43 -> 42 ; -42 [label="42: BinaryOperatorStmt: Assign \n n$11=*&value:int [line 40]\n *&x:int =(n$11 + 1) [line 40]\n REMOVE_TEMPS(n$11); [line 40]\n NULLIFY(&value,false); [line 40]\n NULLIFY(&x,false); [line 40]\n APPLY_ABSTRACTION; [line 40]\n " shape="box"] +42 [label="42: BinaryOperatorStmt: Assign \n n$11=*&value:int [line 44]\n *&x:int =(n$11 + 1) [line 44]\n REMOVE_TEMPS(n$11); [line 44]\n NULLIFY(&value,false); [line 44]\n NULLIFY(&x,false); [line 44]\n APPLY_ABSTRACTION; [line 44]\n " shape="box"] 42 -> 39 ; -41 [label="41: Prune (false branch) \n PRUNE(((n$8 == 0) == 0), false); [line 41]\n " shape="invhouse"] +41 [label="41: Prune (false branch) \n PRUNE(((n$8 == 0) == 0), false); [line 45]\n " shape="invhouse"] 41 -> 36 ; 41 -> 37 ; -40 [label="40: Prune (true branch) \n PRUNE(((n$8 == 0) != 0), true); [line 41]\n APPLY_ABSTRACTION; [line 41]\n " shape="invhouse"] +40 [label="40: Prune (true branch) \n PRUNE(((n$8 == 0) != 0), true); [line 45]\n APPLY_ABSTRACTION; [line 45]\n " shape="invhouse"] 40 -> 39 ; -39 [label="39: Call _fun_printf \n n$10=_fun_printf(\"(0)HELLO WORLD!\":char *) [line 42]\n REMOVE_TEMPS(n$10); [line 42]\n APPLY_ABSTRACTION; [line 42]\n " shape="box"] +39 [label="39: Call _fun_printf \n n$10=_fun_printf(\"(0)HELLO WORLD!\":char *) [line 46]\n REMOVE_TEMPS(n$10); [line 46]\n APPLY_ABSTRACTION; [line 46]\n " shape="box"] 39 -> 26 ; -38 [label="38: DeclStmt \n *&z:int =9 [line 44]\n NULLIFY(&something,false); [line 44]\n NULLIFY(&value,false); [line 44]\n NULLIFY(&x,false); [line 44]\n NULLIFY(&z,false); [line 44]\n APPLY_ABSTRACTION; [line 44]\n " shape="box"] +38 [label="38: DeclStmt \n *&z:int =9 [line 48]\n NULLIFY(&something,false); [line 48]\n NULLIFY(&value,false); [line 48]\n NULLIFY(&x,false); [line 48]\n NULLIFY(&z,false); [line 48]\n APPLY_ABSTRACTION; [line 48]\n " shape="box"] 38 -> 35 ; -37 [label="37: Prune (false branch) \n PRUNE(((n$8 == 1) == 0), false); [line 47]\n " shape="invhouse"] +37 [label="37: Prune (false branch) \n PRUNE(((n$8 == 1) == 0), false); [line 51]\n " shape="invhouse"] 37 -> 31 ; 37 -> 32 ; -36 [label="36: Prune (true branch) \n PRUNE(((n$8 == 1) != 0), true); [line 47]\n APPLY_ABSTRACTION; [line 47]\n " shape="invhouse"] +36 [label="36: Prune (true branch) \n PRUNE(((n$8 == 1) != 0), true); [line 51]\n APPLY_ABSTRACTION; [line 51]\n " shape="invhouse"] 36 -> 35 ; -35 [label="35: DeclStmt \n *&something:int =1 [line 48]\n " shape="box"] +35 [label="35: DeclStmt \n *&something:int =1 [line 52]\n " shape="box"] 35 -> 34 ; -34 [label="34: UnaryOperator \n n$9=*&something:int [line 49]\n *&something:int =(n$9 + 1) [line 49]\n REMOVE_TEMPS(n$9); [line 49]\n NULLIFY(&something,false); [line 49]\n " shape="box"] +34 [label="34: UnaryOperator \n n$9=*&something:int [line 53]\n *&something:int =(n$9 + 1) [line 53]\n REMOVE_TEMPS(n$9); [line 53]\n NULLIFY(&something,false); [line 53]\n " shape="box"] 34 -> 33 ; -33 [label="33: BinaryOperatorStmt: Assign \n *&z:int =42 [line 51]\n NULLIFY(&z,false); [line 51]\n APPLY_ABSTRACTION; [line 51]\n " shape="box"] +33 [label="33: BinaryOperatorStmt: Assign \n *&z:int =42 [line 55]\n NULLIFY(&z,false); [line 55]\n APPLY_ABSTRACTION; [line 55]\n " shape="box"] 33 -> 26 ; -32 [label="32: Prune (false branch) \n PRUNE(((n$8 == 2) == 0), false); [line 53]\n " shape="invhouse"] +32 [label="32: Prune (false branch) \n PRUNE(((n$8 == 2) == 0), false); [line 57]\n " shape="invhouse"] 32 -> 29 ; 32 -> 30 ; -31 [label="31: Prune (true branch) \n PRUNE(((n$8 == 2) != 0), true); [line 53]\n APPLY_ABSTRACTION; [line 53]\n " shape="invhouse"] +31 [label="31: Prune (true branch) \n PRUNE(((n$8 == 2) != 0), true); [line 57]\n APPLY_ABSTRACTION; [line 57]\n " shape="invhouse"] 31 -> 26 ; -30 [label="30: Prune (false branch) \n PRUNE(((n$8 == 3) == 0), false); [line 54]\n " shape="invhouse"] +30 [label="30: Prune (false branch) \n PRUNE(((n$8 == 3) == 0), false); [line 58]\n " shape="invhouse"] 30 -> 28 ; -29 [label="29: Prune (true branch) \n PRUNE(((n$8 == 3) != 0), true); [line 54]\n APPLY_ABSTRACTION; [line 54]\n " shape="invhouse"] +29 [label="29: Prune (true branch) \n PRUNE(((n$8 == 3) != 0), true); [line 58]\n APPLY_ABSTRACTION; [line 58]\n " shape="invhouse"] 29 -> 26 ; -28 [label="28: DefaultStmt_placeholder \n APPLY_ABSTRACTION; [line 45]\n " shape="box"] +28 [label="28: DefaultStmt_placeholder \n APPLY_ABSTRACTION; [line 49]\n " shape="box"] 28 -> 35 ; -27 [label="27: Switch_stmt \n n$8=*&value:int [line 36]\n NULLIFY(&value,false); [line 36]\n " shape="box"] +27 [label="27: Switch_stmt \n n$8=*&value:int [line 40]\n NULLIFY(&value,false); [line 40]\n " shape="box"] 27 -> 40 ; 27 -> 41 ; -26 [label="26: Return Stmt \n *&return:int =0 [line 56]\n REMOVE_TEMPS(n$8); [line 56]\n APPLY_ABSTRACTION; [line 56]\n " shape="box"] +26 [label="26: Return Stmt \n *&return:int =0 [line 60]\n REMOVE_TEMPS(n$8); [line 60]\n APPLY_ABSTRACTION; [line 60]\n " shape="box"] 26 -> 25 ; 25 [label="25: Exit m2 \n " color=yellow style=filled] -24 [label="24: Start m2\nFormals: \nLocals: value:int x:int z:int something:int \n DECLARE_LOCALS(&return,&value,&x,&z,&something); [line 33]\n NULLIFY(&something,false); [line 33]\n NULLIFY(&value,false); [line 33]\n NULLIFY(&x,false); [line 33]\n NULLIFY(&z,false); [line 33]\n " color=yellow style=filled] +24 [label="24: Start m2\nFormals: \nLocals: value:int x:int z:int something:int \n DECLARE_LOCALS(&return,&value,&x,&z,&something); [line 37]\n NULLIFY(&something,false); [line 37]\n NULLIFY(&value,false); [line 37]\n NULLIFY(&x,false); [line 37]\n NULLIFY(&z,false); [line 37]\n " color=yellow style=filled] 24 -> 45 ; -23 [label="23: DeclStmt \n *&value:int =0 [line 10]\n APPLY_ABSTRACTION; [line 10]\n " shape="box"] +23 [label="23: DeclStmt \n *&value:int =0 [line 14]\n APPLY_ABSTRACTION; [line 14]\n " shape="box"] 23 -> 4 ; -22 [label="22: DeclStmt \n *&x:int =1 [line 13]\n NULLIFY(&x,false); [line 13]\n " shape="box"] +22 [label="22: DeclStmt \n *&x:int =1 [line 17]\n NULLIFY(&x,false); [line 17]\n " shape="box"] 22 -> 21 ; -21 [label="21: Call _fun_printf \n n$7=_fun_printf(\"(out)HELLO WORLD!\":char *) [line 14]\n REMOVE_TEMPS(n$7); [line 14]\n " shape="box"] +21 [label="21: Call _fun_printf \n n$7=_fun_printf(\"(out)HELLO WORLD!\":char *) [line 18]\n REMOVE_TEMPS(n$7); [line 18]\n " shape="box"] 21 -> 20 ; -20 [label="20: BinaryOperatorStmt: Assign \n n$6=*&value:int [line 15]\n *&x:int =(n$6 + 1) [line 15]\n REMOVE_TEMPS(n$6); [line 15]\n NULLIFY(&x,false); [line 15]\n APPLY_ABSTRACTION; [line 15]\n " shape="box"] +20 [label="20: BinaryOperatorStmt: Assign \n n$6=*&value:int [line 19]\n *&x:int =(n$6 + 1) [line 19]\n REMOVE_TEMPS(n$6); [line 19]\n NULLIFY(&x,false); [line 19]\n APPLY_ABSTRACTION; [line 19]\n " shape="box"] 20 -> 17 ; -19 [label="19: Prune (false branch) \n PRUNE(((n$2 == 0) == 0), false); [line 16]\n " shape="invhouse"] +19 [label="19: Prune (false branch) \n PRUNE(((n$2 == 0) == 0), false); [line 20]\n " shape="invhouse"] 19 -> 15 ; 19 -> 16 ; -18 [label="18: Prune (true branch) \n PRUNE(((n$2 == 0) != 0), true); [line 16]\n APPLY_ABSTRACTION; [line 16]\n " shape="invhouse"] +18 [label="18: Prune (true branch) \n PRUNE(((n$2 == 0) != 0), true); [line 20]\n APPLY_ABSTRACTION; [line 20]\n " shape="invhouse"] 18 -> 17 ; -17 [label="17: Call _fun_printf \n n$5=_fun_printf(\"(0)HELLO WORLD!\":char *) [line 17]\n REMOVE_TEMPS(n$5); [line 17]\n " shape="box"] +17 [label="17: Call _fun_printf \n n$5=_fun_printf(\"(0)HELLO WORLD!\":char *) [line 21]\n REMOVE_TEMPS(n$5); [line 21]\n " shape="box"] 17 -> 8 ; -16 [label="16: Prune (false branch) \n PRUNE(((n$2 == 1) == 0), false); [line 19]\n " shape="invhouse"] +16 [label="16: Prune (false branch) \n PRUNE(((n$2 == 1) == 0), false); [line 23]\n " shape="invhouse"] 16 -> 12 ; 16 -> 13 ; -15 [label="15: Prune (true branch) \n PRUNE(((n$2 == 1) != 0), true); [line 19]\n " shape="invhouse"] +15 [label="15: Prune (true branch) \n PRUNE(((n$2 == 1) != 0), true); [line 23]\n " shape="invhouse"] 15 -> 14 ; -14 [label="14: Call _fun_printf \n n$4=_fun_printf(\"(1)HELLO WORLD!\":char *) [line 20]\n REMOVE_TEMPS(n$4); [line 20]\n APPLY_ABSTRACTION; [line 20]\n " shape="box"] +14 [label="14: Call _fun_printf \n n$4=_fun_printf(\"(1)HELLO WORLD!\":char *) [line 24]\n REMOVE_TEMPS(n$4); [line 24]\n APPLY_ABSTRACTION; [line 24]\n " shape="box"] 14 -> 4 ; -13 [label="13: Prune (false branch) \n PRUNE(((n$2 == 2) == 0), false); [line 22]\n " shape="invhouse"] +13 [label="13: Prune (false branch) \n PRUNE(((n$2 == 2) == 0), false); [line 26]\n " shape="invhouse"] 13 -> 10 ; -12 [label="12: Prune (true branch) \n PRUNE(((n$2 == 2) != 0), true); [line 22]\n APPLY_ABSTRACTION; [line 22]\n " shape="invhouse"] +12 [label="12: Prune (true branch) \n PRUNE(((n$2 == 2) != 0), true); [line 26]\n APPLY_ABSTRACTION; [line 26]\n " shape="invhouse"] 12 -> 11 ; -11 [label="11: Call _fun_printf \n n$3=_fun_printf(\"(2/def)HELLO WORLD!\":char *) [line 24]\n REMOVE_TEMPS(n$3); [line 24]\n APPLY_ABSTRACTION; [line 24]\n " shape="box"] +11 [label="11: Call _fun_printf \n n$3=_fun_printf(\"(2/def)HELLO WORLD!\":char *) [line 28]\n REMOVE_TEMPS(n$3); [line 28]\n APPLY_ABSTRACTION; [line 28]\n " shape="box"] 11 -> 4 ; -10 [label="10: DefaultStmt_placeholder \n APPLY_ABSTRACTION; [line 23]\n " shape="box"] +10 [label="10: DefaultStmt_placeholder \n APPLY_ABSTRACTION; [line 27]\n " shape="box"] 10 -> 11 ; -9 [label="9: Switch_stmt \n n$2=*&value:int [line 12]\n " shape="box"] +9 [label="9: Switch_stmt \n n$2=*&value:int [line 16]\n " shape="box"] 9 -> 18 ; 9 -> 19 ; -8 [label="8: Call _fun_printf \n n$1=_fun_printf(\"(after_switch)HELLO WORLD!\":char *) [line 27]\n REMOVE_TEMPS(n$1,n$2); [line 27]\n APPLY_ABSTRACTION; [line 27]\n " shape="box"] +8 [label="8: Call _fun_printf \n n$1=_fun_printf(\"(after_switch)HELLO WORLD!\":char *) [line 31]\n REMOVE_TEMPS(n$1,n$2); [line 31]\n APPLY_ABSTRACTION; [line 31]\n " shape="box"] 8 -> 4 ; -7 [label="7: Prune (false branch) \n PRUNE(((n$0 < 10) == 0), false); [line 11]\n REMOVE_TEMPS(n$0); [line 11]\n " shape="invhouse"] +7 [label="7: Prune (false branch) \n PRUNE(((n$0 < 10) == 0), false); [line 15]\n REMOVE_TEMPS(n$0); [line 15]\n " shape="invhouse"] 7 -> 3 ; -6 [label="6: Prune (true branch) \n PRUNE(((n$0 < 10) != 0), true); [line 11]\n REMOVE_TEMPS(n$0); [line 11]\n " shape="invhouse"] +6 [label="6: Prune (true branch) \n PRUNE(((n$0 < 10) != 0), true); [line 15]\n REMOVE_TEMPS(n$0); [line 15]\n " shape="invhouse"] 6 -> 9 ; -5 [label="5: BinaryOperatorStmt: LT \n n$0=*&value:int [line 11]\n " shape="box"] +5 [label="5: BinaryOperatorStmt: LT \n n$0=*&value:int [line 15]\n " shape="box"] 5 -> 6 ; @@ -791,14 +791,14 @@ digraph iCFG { 4 -> 5 ; -3 [label="3: Return Stmt \n NULLIFY(&value,false); [line 29]\n *&return:int =0 [line 29]\n APPLY_ABSTRACTION; [line 29]\n " shape="box"] +3 [label="3: Return Stmt \n NULLIFY(&value,false); [line 33]\n *&return:int =0 [line 33]\n APPLY_ABSTRACTION; [line 33]\n " shape="box"] 3 -> 2 ; 2 [label="2: Exit m1 \n " color=yellow style=filled] -1 [label="1: Start m1\nFormals: \nLocals: value:int x:int \n DECLARE_LOCALS(&return,&value,&x); [line 8]\n NULLIFY(&value,false); [line 8]\n NULLIFY(&x,false); [line 8]\n " color=yellow style=filled] +1 [label="1: Start m1\nFormals: \nLocals: value:int x:int \n DECLARE_LOCALS(&return,&value,&x); [line 12]\n NULLIFY(&value,false); [line 12]\n NULLIFY(&x,false); [line 12]\n " color=yellow style=filled] 1 -> 23 ; diff --git a/infer/tests/codetoanalyze/cpp/frontend/literals/nullptr.cpp b/infer/tests/codetoanalyze/cpp/frontend/literals/nullptr.cpp index 83d09e901..c71f51433 100644 --- a/infer/tests/codetoanalyze/cpp/frontend/literals/nullptr.cpp +++ b/infer/tests/codetoanalyze/cpp/frontend/literals/nullptr.cpp @@ -1 +1,10 @@ +/* +* Copyright (c) 2015 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. +*/ + int* getPtr() {return nullptr;} diff --git a/infer/tests/codetoanalyze/cpp/frontend/literals/nullptr.dot b/infer/tests/codetoanalyze/cpp/frontend/literals/nullptr.dot index 5ff3719e2..1190513e9 100644 --- a/infer/tests/codetoanalyze/cpp/frontend/literals/nullptr.dot +++ b/infer/tests/codetoanalyze/cpp/frontend/literals/nullptr.dot @@ -1,12 +1,12 @@ digraph iCFG { -3 [label="3: Return Stmt \n *&return:int *=null [line 1]\n APPLY_ABSTRACTION; [line 1]\n " shape="box"] +3 [label="3: Return Stmt \n *&return:int *=null [line 10]\n APPLY_ABSTRACTION; [line 10]\n " shape="box"] 3 -> 2 ; 2 [label="2: Exit getPtr \n " color=yellow style=filled] -1 [label="1: Start getPtr\nFormals: \nLocals: \n DECLARE_LOCALS(&return); [line 1]\n " color=yellow style=filled] +1 [label="1: Start getPtr\nFormals: \nLocals: \n DECLARE_LOCALS(&return); [line 10]\n " color=yellow style=filled] 1 -> 3 ; diff --git a/infer/tests/codetoanalyze/cpp/frontend/namespace/namespace.cpp b/infer/tests/codetoanalyze/cpp/frontend/namespace/namespace.cpp index c42951621..bcbe4fd75 100644 --- a/infer/tests/codetoanalyze/cpp/frontend/namespace/namespace.cpp +++ b/infer/tests/codetoanalyze/cpp/frontend/namespace/namespace.cpp @@ -1,6 +1,10 @@ /* - * Copyright (c) 2013 - Facebook. - * All rights reserved. +* Copyright (c) 2013 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ #include diff --git a/infer/tests/codetoanalyze/cpp/frontend/namespace/namespace.dot b/infer/tests/codetoanalyze/cpp/frontend/namespace/namespace.dot index a02f73cd4..763f3a31e 100644 --- a/infer/tests/codetoanalyze/cpp/frontend/namespace/namespace.dot +++ b/infer/tests/codetoanalyze/cpp/frontend/namespace/namespace.dot @@ -1,23 +1,23 @@ digraph iCFG { -6 [label="6: Return Stmt \n n$0=*&#GB$pi:double [line 25]\n *&return:double =(2 * n$0) [line 25]\n REMOVE_TEMPS(n$0); [line 25]\n APPLY_ABSTRACTION; [line 25]\n " shape="box"] +6 [label="6: Return Stmt \n n$0=*&#GB$pi:double [line 29]\n *&return:double =(2 * n$0) [line 29]\n REMOVE_TEMPS(n$0); [line 29]\n APPLY_ABSTRACTION; [line 29]\n " shape="box"] 6 -> 5 ; 5 [label="5: Exit value \n " color=yellow style=filled] -4 [label="4: Start value\nFormals: \nLocals: \n DECLARE_LOCALS(&return); [line 25]\n " color=yellow style=filled] +4 [label="4: Start value\nFormals: \nLocals: \n DECLARE_LOCALS(&return); [line 29]\n " color=yellow style=filled] 4 -> 6 ; -3 [label="3: Return Stmt \n *&return:int =5 [line 12]\n APPLY_ABSTRACTION; [line 12]\n " shape="box"] +3 [label="3: Return Stmt \n *&return:int =5 [line 16]\n APPLY_ABSTRACTION; [line 16]\n " shape="box"] 3 -> 2 ; 2 [label="2: Exit value \n " color=yellow style=filled] -1 [label="1: Start value\nFormals: \nLocals: \n DECLARE_LOCALS(&return); [line 12]\n " color=yellow style=filled] +1 [label="1: Start value\nFormals: \nLocals: \n DECLARE_LOCALS(&return); [line 16]\n " color=yellow style=filled] 1 -> 3 ; diff --git a/infer/tests/codetoanalyze/cpp/frontend/types/casts.cpp b/infer/tests/codetoanalyze/cpp/frontend/types/casts.cpp index d018fcac7..830eaa20e 100644 --- a/infer/tests/codetoanalyze/cpp/frontend/types/casts.cpp +++ b/infer/tests/codetoanalyze/cpp/frontend/types/casts.cpp @@ -1,3 +1,12 @@ +/* +* Copyright (c) 2015 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. +*/ + void stat_cast() { int a; long long la = static_cast(a); diff --git a/infer/tests/codetoanalyze/cpp/frontend/types/casts.dot b/infer/tests/codetoanalyze/cpp/frontend/types/casts.dot index f9777d120..51222836f 100644 --- a/infer/tests/codetoanalyze/cpp/frontend/types/casts.dot +++ b/infer/tests/codetoanalyze/cpp/frontend/types/casts.dot @@ -1,12 +1,12 @@ digraph iCFG { -3 [label="3: DeclStmt \n n$0=*&a:int [line 3]\n *&la:long long =n$0 [line 3]\n REMOVE_TEMPS(n$0); [line 3]\n NULLIFY(&a,false); [line 3]\n NULLIFY(&la,false); [line 3]\n APPLY_ABSTRACTION; [line 3]\n " shape="box"] +3 [label="3: DeclStmt \n n$0=*&a:int [line 12]\n *&la:long long =n$0 [line 12]\n REMOVE_TEMPS(n$0); [line 12]\n NULLIFY(&a,false); [line 12]\n NULLIFY(&la,false); [line 12]\n APPLY_ABSTRACTION; [line 12]\n " shape="box"] 3 -> 2 ; 2 [label="2: Exit stat_cast \n " color=yellow style=filled] -1 [label="1: Start stat_cast\nFormals: \nLocals: a:int la:long long \n DECLARE_LOCALS(&return,&a,&la); [line 1]\n NULLIFY(&la,false); [line 1]\n " color=yellow style=filled] +1 [label="1: Start stat_cast\nFormals: \nLocals: a:int la:long long \n DECLARE_LOCALS(&return,&a,&la); [line 10]\n NULLIFY(&la,false); [line 10]\n " color=yellow style=filled] 1 -> 3 ; diff --git a/infer/tests/codetoanalyze/cpp/frontend/types/functions.cpp b/infer/tests/codetoanalyze/cpp/frontend/types/functions.cpp index ab8968d39..e02fb4486 100644 --- a/infer/tests/codetoanalyze/cpp/frontend/types/functions.cpp +++ b/infer/tests/codetoanalyze/cpp/frontend/types/functions.cpp @@ -1,3 +1,12 @@ +/* +* Copyright (c) 2015 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. +*/ + int fun_default(int a = 3, int b = 5) { return a + b; } diff --git a/infer/tests/codetoanalyze/cpp/frontend/types/functions.dot b/infer/tests/codetoanalyze/cpp/frontend/types/functions.dot index 5b7a119e8..1eca0d0f6 100644 --- a/infer/tests/codetoanalyze/cpp/frontend/types/functions.dot +++ b/infer/tests/codetoanalyze/cpp/frontend/types/functions.dot @@ -1,50 +1,50 @@ digraph iCFG { -13 [label="13: Call _fun_fun_default \n n$8=_fun_fun_default(1:int ,2:int ) [line 12]\n REMOVE_TEMPS(n$8); [line 12]\n " shape="box"] +13 [label="13: Call _fun_fun_default \n n$8=_fun_fun_default(1:int ,2:int ) [line 21]\n REMOVE_TEMPS(n$8); [line 21]\n " shape="box"] 13 -> 12 ; -12 [label="12: Call _fun_fun_default \n n$7=_fun_fun_default(1:int ,5:int ) [line 13]\n REMOVE_TEMPS(n$7); [line 13]\n " shape="box"] +12 [label="12: Call _fun_fun_default \n n$7=_fun_fun_default(1:int ,5:int ) [line 22]\n REMOVE_TEMPS(n$7); [line 22]\n " shape="box"] 12 -> 11 ; -11 [label="11: Call _fun_fun_default \n n$6=_fun_fun_default(3:int ,5:int ) [line 14]\n REMOVE_TEMPS(n$6); [line 14]\n " shape="box"] +11 [label="11: Call _fun_fun_default \n n$6=_fun_fun_default(3:int ,5:int ) [line 23]\n REMOVE_TEMPS(n$6); [line 23]\n " shape="box"] 11 -> 10 ; -10 [label="10: Call _fun_fun_default_decl \n n$5=_fun_fun_default_decl(6:int ,5:int ) [line 16]\n REMOVE_TEMPS(n$5); [line 16]\n " shape="box"] +10 [label="10: Call _fun_fun_default_decl \n n$5=_fun_fun_default_decl(6:int ,5:int ) [line 25]\n REMOVE_TEMPS(n$5); [line 25]\n " shape="box"] 10 -> 9 ; -9 [label="9: Call _fun_fun_default_decl \n n$4=_fun_fun_default_decl(6:int ,6:int ) [line 17]\n REMOVE_TEMPS(n$4); [line 17]\n APPLY_ABSTRACTION; [line 17]\n " shape="box"] +9 [label="9: Call _fun_fun_default_decl \n n$4=_fun_fun_default_decl(6:int ,6:int ) [line 26]\n REMOVE_TEMPS(n$4); [line 26]\n APPLY_ABSTRACTION; [line 26]\n " shape="box"] 9 -> 8 ; 8 [label="8: Exit test \n " color=yellow style=filled] -7 [label="7: Start test\nFormals: \nLocals: \n DECLARE_LOCALS(&return); [line 11]\n " color=yellow style=filled] +7 [label="7: Start test\nFormals: \nLocals: \n DECLARE_LOCALS(&return); [line 20]\n " color=yellow style=filled] 7 -> 13 ; -6 [label="6: Return Stmt \n n$2=*&a:int [line 8]\n n$3=*&b:int [line 8]\n *&return:int =(n$2 + n$3) [line 8]\n REMOVE_TEMPS(n$2,n$3); [line 8]\n NULLIFY(&a,false); [line 8]\n NULLIFY(&b,false); [line 8]\n APPLY_ABSTRACTION; [line 8]\n " shape="box"] +6 [label="6: Return Stmt \n n$2=*&a:int [line 17]\n n$3=*&b:int [line 17]\n *&return:int =(n$2 + n$3) [line 17]\n REMOVE_TEMPS(n$2,n$3); [line 17]\n NULLIFY(&a,false); [line 17]\n NULLIFY(&b,false); [line 17]\n APPLY_ABSTRACTION; [line 17]\n " shape="box"] 6 -> 5 ; 5 [label="5: Exit fun_default_decl \n " color=yellow style=filled] -4 [label="4: Start fun_default_decl\nFormals: a:int b:int \nLocals: \n DECLARE_LOCALS(&return); [line 7]\n " color=yellow style=filled] +4 [label="4: Start fun_default_decl\nFormals: a:int b:int \nLocals: \n DECLARE_LOCALS(&return); [line 16]\n " color=yellow style=filled] 4 -> 6 ; -3 [label="3: Return Stmt \n n$0=*&a:int [line 2]\n n$1=*&b:int [line 2]\n *&return:int =(n$0 + n$1) [line 2]\n REMOVE_TEMPS(n$0,n$1); [line 2]\n NULLIFY(&a,false); [line 2]\n NULLIFY(&b,false); [line 2]\n APPLY_ABSTRACTION; [line 2]\n " shape="box"] +3 [label="3: Return Stmt \n n$0=*&a:int [line 11]\n n$1=*&b:int [line 11]\n *&return:int =(n$0 + n$1) [line 11]\n REMOVE_TEMPS(n$0,n$1); [line 11]\n NULLIFY(&a,false); [line 11]\n NULLIFY(&b,false); [line 11]\n APPLY_ABSTRACTION; [line 11]\n " shape="box"] 3 -> 2 ; 2 [label="2: Exit fun_default \n " color=yellow style=filled] -1 [label="1: Start fun_default\nFormals: a:int b:int \nLocals: \n DECLARE_LOCALS(&return); [line 1]\n " color=yellow style=filled] +1 [label="1: Start fun_default\nFormals: a:int b:int \nLocals: \n DECLARE_LOCALS(&return); [line 10]\n " color=yellow style=filled] 1 -> 3 ; diff --git a/infer/tests/codetoanalyze/java/checkers/ImmutableCast.java b/infer/tests/codetoanalyze/java/checkers/ImmutableCast.java index f4f57ec32..8dae69669 100644 --- a/infer/tests/codetoanalyze/java/checkers/ImmutableCast.java +++ b/infer/tests/codetoanalyze/java/checkers/ImmutableCast.java @@ -1,6 +1,10 @@ /* -* Copyright (c) 2013- Facebook. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ package codetoanalyze.java.checkers; diff --git a/infer/tests/codetoanalyze/java/checkers/PrintfArgsChecker.java b/infer/tests/codetoanalyze/java/checkers/PrintfArgsChecker.java index 02c15af6a..68cb84d05 100644 --- a/infer/tests/codetoanalyze/java/checkers/PrintfArgsChecker.java +++ b/infer/tests/codetoanalyze/java/checkers/PrintfArgsChecker.java @@ -1,6 +1,10 @@ /* -* Copyright (c) 2013- Facebook. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ package codetoanalyze.java.checkers; diff --git a/infer/tests/codetoanalyze/java/eradicate/ActivityFieldNotInitialized.java b/infer/tests/codetoanalyze/java/eradicate/ActivityFieldNotInitialized.java index 399598a50..aedd49eae 100644 --- a/infer/tests/codetoanalyze/java/eradicate/ActivityFieldNotInitialized.java +++ b/infer/tests/codetoanalyze/java/eradicate/ActivityFieldNotInitialized.java @@ -1,3 +1,12 @@ +/* +* Copyright (c) 2015 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. +*/ + package codetoanalyze.java.eradicate; import android.app.Activity; diff --git a/infer/tests/codetoanalyze/java/eradicate/FieldNotInitialized.java b/infer/tests/codetoanalyze/java/eradicate/FieldNotInitialized.java index e4d4422f5..2045eddf9 100644 --- a/infer/tests/codetoanalyze/java/eradicate/FieldNotInitialized.java +++ b/infer/tests/codetoanalyze/java/eradicate/FieldNotInitialized.java @@ -1,6 +1,10 @@ /* -* Copyright (c) 2013- Facebook. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ package codetoanalyze.java.eradicate; diff --git a/infer/tests/codetoanalyze/java/eradicate/FieldNotNullable.java b/infer/tests/codetoanalyze/java/eradicate/FieldNotNullable.java index cac94b801..0648b2e9b 100644 --- a/infer/tests/codetoanalyze/java/eradicate/FieldNotNullable.java +++ b/infer/tests/codetoanalyze/java/eradicate/FieldNotNullable.java @@ -1,6 +1,10 @@ /* -* Copyright (c) 2013- Facebook. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ package codetoanalyze.java.eradicate; diff --git a/infer/tests/codetoanalyze/java/eradicate/InconsistentSubclassAnnotation.java b/infer/tests/codetoanalyze/java/eradicate/InconsistentSubclassAnnotation.java index 5578f7f1b..1857c1455 100644 --- a/infer/tests/codetoanalyze/java/eradicate/InconsistentSubclassAnnotation.java +++ b/infer/tests/codetoanalyze/java/eradicate/InconsistentSubclassAnnotation.java @@ -1,3 +1,12 @@ +/* +* Copyright (c) 2015 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. +*/ + package codetoanalyze.java.eradicate; import javax.annotation.Nullable; diff --git a/infer/tests/codetoanalyze/java/eradicate/LibraryCalls.java b/infer/tests/codetoanalyze/java/eradicate/LibraryCalls.java index 42e1767db..3a60d1806 100644 --- a/infer/tests/codetoanalyze/java/eradicate/LibraryCalls.java +++ b/infer/tests/codetoanalyze/java/eradicate/LibraryCalls.java @@ -1,5 +1,10 @@ /* - * Copyright 2013-present Facebook, Inc. +* Copyright (c) 2013 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ package codetoanalyze.java.eradicate; diff --git a/infer/tests/codetoanalyze/java/eradicate/NullFieldAccess.java b/infer/tests/codetoanalyze/java/eradicate/NullFieldAccess.java index f69d5a272..477522535 100644 --- a/infer/tests/codetoanalyze/java/eradicate/NullFieldAccess.java +++ b/infer/tests/codetoanalyze/java/eradicate/NullFieldAccess.java @@ -1,6 +1,10 @@ /* -* Copyright (c) 2013- Facebook. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ package codetoanalyze.java.eradicate; diff --git a/infer/tests/codetoanalyze/java/eradicate/NullMethodCall.java b/infer/tests/codetoanalyze/java/eradicate/NullMethodCall.java index a3f268366..e2a21069a 100644 --- a/infer/tests/codetoanalyze/java/eradicate/NullMethodCall.java +++ b/infer/tests/codetoanalyze/java/eradicate/NullMethodCall.java @@ -1,6 +1,10 @@ /* -* Copyright (c) 2013- Facebook. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ package codetoanalyze.java.eradicate; diff --git a/infer/tests/codetoanalyze/java/eradicate/ParameterNotNullable.java b/infer/tests/codetoanalyze/java/eradicate/ParameterNotNullable.java index e655c211d..9292e0b40 100644 --- a/infer/tests/codetoanalyze/java/eradicate/ParameterNotNullable.java +++ b/infer/tests/codetoanalyze/java/eradicate/ParameterNotNullable.java @@ -1,6 +1,10 @@ /* -* Copyright (c) 2013- Facebook. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ package codetoanalyze.java.eradicate; diff --git a/infer/tests/codetoanalyze/java/eradicate/ReturnNotNullable.java b/infer/tests/codetoanalyze/java/eradicate/ReturnNotNullable.java index f26104f23..e6c902d2c 100644 --- a/infer/tests/codetoanalyze/java/eradicate/ReturnNotNullable.java +++ b/infer/tests/codetoanalyze/java/eradicate/ReturnNotNullable.java @@ -1,6 +1,10 @@ /* -* Copyright (c) 2013- Facebook. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ package codetoanalyze.java.eradicate; diff --git a/infer/tests/codetoanalyze/java/eradicate/SuppressedFieldNotInitializedExample.java b/infer/tests/codetoanalyze/java/eradicate/SuppressedFieldNotInitializedExample.java index de21a42ac..c66f81137 100644 --- a/infer/tests/codetoanalyze/java/eradicate/SuppressedFieldNotInitializedExample.java +++ b/infer/tests/codetoanalyze/java/eradicate/SuppressedFieldNotInitializedExample.java @@ -1,5 +1,10 @@ /* - * Copyright 2013-present Facebook, Inc. +* Copyright (c) 2013 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ package codetoanalyze.java.eradicate; diff --git a/infer/tests/codetoanalyze/java/errors/CursorNPEs.java b/infer/tests/codetoanalyze/java/errors/CursorNPEs.java index d71350e6d..560921c22 100644 --- a/infer/tests/codetoanalyze/java/errors/CursorNPEs.java +++ b/infer/tests/codetoanalyze/java/errors/CursorNPEs.java @@ -1,6 +1,10 @@ /* -* Copyright (c) 2013- Facebook. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ package com.facebook.infer.tests.codetoanalyze.java.errors; diff --git a/infer/tests/codetoanalyze/java/harness/BasicHarnessActivity.java b/infer/tests/codetoanalyze/java/harness/BasicHarnessActivity.java index b7a4fcbd5..1b1124f90 100644 --- a/infer/tests/codetoanalyze/java/harness/BasicHarnessActivity.java +++ b/infer/tests/codetoanalyze/java/harness/BasicHarnessActivity.java @@ -1,3 +1,12 @@ +/* +* Copyright (c) 2015 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. +*/ + package codetoanalyze.java.harness; import android.app.Activity; diff --git a/infer/tests/codetoanalyze/java/harness/CallbackActivity.java b/infer/tests/codetoanalyze/java/harness/CallbackActivity.java index 8ac7c22cb..9c1e9d004 100644 --- a/infer/tests/codetoanalyze/java/harness/CallbackActivity.java +++ b/infer/tests/codetoanalyze/java/harness/CallbackActivity.java @@ -1,3 +1,12 @@ +/* +* Copyright (c) 2015 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. +*/ + package codetoanalyze.java.harness; import android.app.Activity; diff --git a/infer/tests/codetoanalyze/java/harness/FindViewByIdActivity.java b/infer/tests/codetoanalyze/java/harness/FindViewByIdActivity.java index 472880a51..b1aab488a 100644 --- a/infer/tests/codetoanalyze/java/harness/FindViewByIdActivity.java +++ b/infer/tests/codetoanalyze/java/harness/FindViewByIdActivity.java @@ -1,3 +1,12 @@ +/* +* Copyright (c) 2015 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. +*/ + package codetoanalyze.java.harness; import android.app.Activity; diff --git a/infer/tests/codetoanalyze/java/harness/MyView.java b/infer/tests/codetoanalyze/java/harness/MyView.java index 834f20bb0..f727b8bba 100644 --- a/infer/tests/codetoanalyze/java/harness/MyView.java +++ b/infer/tests/codetoanalyze/java/harness/MyView.java @@ -1,3 +1,12 @@ +/* +* Copyright (c) 2015 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. +*/ + package codetoanalyze.java.harness; import android.content.Context; diff --git a/infer/tests/codetoanalyze/java/harness/SubclassActivity.java b/infer/tests/codetoanalyze/java/harness/SubclassActivity.java index 6f7c76c74..169da75fe 100644 --- a/infer/tests/codetoanalyze/java/harness/SubclassActivity.java +++ b/infer/tests/codetoanalyze/java/harness/SubclassActivity.java @@ -1,3 +1,12 @@ +/* +* Copyright (c) 2015 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. +*/ + package codetoanalyze.java.harness; public class SubclassActivity extends SuperclassActivity { diff --git a/infer/tests/codetoanalyze/java/harness/SuperclassActivity.java b/infer/tests/codetoanalyze/java/harness/SuperclassActivity.java index 9b4bd5043..b8e5c8558 100644 --- a/infer/tests/codetoanalyze/java/harness/SuperclassActivity.java +++ b/infer/tests/codetoanalyze/java/harness/SuperclassActivity.java @@ -1,3 +1,12 @@ +/* +* Copyright (c) 2015 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. +*/ + package codetoanalyze.java.harness; import android.app.Activity; diff --git a/infer/tests/codetoanalyze/java/harness/TrickyParamsActivity.java b/infer/tests/codetoanalyze/java/harness/TrickyParamsActivity.java index 0d20fa54a..9835abf6c 100644 --- a/infer/tests/codetoanalyze/java/harness/TrickyParamsActivity.java +++ b/infer/tests/codetoanalyze/java/harness/TrickyParamsActivity.java @@ -1,3 +1,12 @@ +/* +* Copyright (c) 2015 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. +*/ + package codetoanalyze.java.harness; import android.app.Activity; diff --git a/infer/tests/codetoanalyze/java/infer/AnalysisStops.java b/infer/tests/codetoanalyze/java/infer/AnalysisStops.java index 0bfe44426..db344d750 100644 --- a/infer/tests/codetoanalyze/java/infer/AnalysisStops.java +++ b/infer/tests/codetoanalyze/java/infer/AnalysisStops.java @@ -1,3 +1,12 @@ +/* +* Copyright (c) 2015 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. +*/ + package codetoanalyze.java.infer; import java.util.Iterator; diff --git a/infer/tests/codetoanalyze/java/infer/ArrayOutOfBounds.java b/infer/tests/codetoanalyze/java/infer/ArrayOutOfBounds.java index 85a1bf045..95e47d1f2 100644 --- a/infer/tests/codetoanalyze/java/infer/ArrayOutOfBounds.java +++ b/infer/tests/codetoanalyze/java/infer/ArrayOutOfBounds.java @@ -1,6 +1,10 @@ /* -* Copyright (c) 2013- Facebook. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ package codetoanalyze.java.infer; diff --git a/infer/tests/codetoanalyze/java/infer/AutoGenerated.java b/infer/tests/codetoanalyze/java/infer/AutoGenerated.java index b93d10e10..1965781bd 100644 --- a/infer/tests/codetoanalyze/java/infer/AutoGenerated.java +++ b/infer/tests/codetoanalyze/java/infer/AutoGenerated.java @@ -1,6 +1,10 @@ /* - * Copyright (c) 2015- Facebook. - * All rights reserved. +* Copyright (c) 2015 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ package codetoanalyze.java.infer; diff --git a/infer/tests/codetoanalyze/java/infer/Builtins.java b/infer/tests/codetoanalyze/java/infer/Builtins.java index e2e78ebbb..ffc309afa 100644 --- a/infer/tests/codetoanalyze/java/infer/Builtins.java +++ b/infer/tests/codetoanalyze/java/infer/Builtins.java @@ -1,6 +1,10 @@ /* - * Copyright (c) 2013- Facebook. - * All rights reserved. +* Copyright (c) 2013 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ package codetoanalyze.java.infer; diff --git a/infer/tests/codetoanalyze/java/infer/ClassCastExceptions.java b/infer/tests/codetoanalyze/java/infer/ClassCastExceptions.java index ec994182f..d21530ff7 100644 --- a/infer/tests/codetoanalyze/java/infer/ClassCastExceptions.java +++ b/infer/tests/codetoanalyze/java/infer/ClassCastExceptions.java @@ -1,6 +1,10 @@ /* -* Copyright (c) 2013- Facebook. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ package codetoanalyze.java.infer; diff --git a/infer/tests/codetoanalyze/java/infer/CloseableAsResourceExample.java b/infer/tests/codetoanalyze/java/infer/CloseableAsResourceExample.java index b86a3802e..ecc34555a 100644 --- a/infer/tests/codetoanalyze/java/infer/CloseableAsResourceExample.java +++ b/infer/tests/codetoanalyze/java/infer/CloseableAsResourceExample.java @@ -1,6 +1,10 @@ /* -* Copyright (c) 2015-present Facebook. +* Copyright (c) 2015 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ package codetoanalyze.java.infer; diff --git a/infer/tests/codetoanalyze/java/infer/CursorLeaks.java b/infer/tests/codetoanalyze/java/infer/CursorLeaks.java index 4079af0df..c3d4ef0cd 100644 --- a/infer/tests/codetoanalyze/java/infer/CursorLeaks.java +++ b/infer/tests/codetoanalyze/java/infer/CursorLeaks.java @@ -1,6 +1,10 @@ /* -* Copyright (c) 2013- Facebook. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ package codetoanalyze.java.infer; diff --git a/infer/tests/codetoanalyze/java/infer/DivideByZero.java b/infer/tests/codetoanalyze/java/infer/DivideByZero.java index 4d4257ca0..b4db9400f 100644 --- a/infer/tests/codetoanalyze/java/infer/DivideByZero.java +++ b/infer/tests/codetoanalyze/java/infer/DivideByZero.java @@ -1,6 +1,10 @@ /* -* Copyright (c) 2013- Facebook. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ package codetoanalyze.java.infer; diff --git a/infer/tests/codetoanalyze/java/infer/FilterInputStreamLeaks.java b/infer/tests/codetoanalyze/java/infer/FilterInputStreamLeaks.java index 184eaa0dc..d6592c278 100644 --- a/infer/tests/codetoanalyze/java/infer/FilterInputStreamLeaks.java +++ b/infer/tests/codetoanalyze/java/infer/FilterInputStreamLeaks.java @@ -1,6 +1,10 @@ /* -* Copyright (c) 2013- Facebook. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ package codetoanalyze.java.infer; diff --git a/infer/tests/codetoanalyze/java/infer/FilterOutputStreamLeaks.java b/infer/tests/codetoanalyze/java/infer/FilterOutputStreamLeaks.java index de06628f2..5fcabdb34 100644 --- a/infer/tests/codetoanalyze/java/infer/FilterOutputStreamLeaks.java +++ b/infer/tests/codetoanalyze/java/infer/FilterOutputStreamLeaks.java @@ -1,6 +1,10 @@ /* -* Copyright (c) 2013- Facebook. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ package codetoanalyze.java.infer; diff --git a/infer/tests/codetoanalyze/java/infer/HashMapExample.java b/infer/tests/codetoanalyze/java/infer/HashMapExample.java index 11345af20..68f0462cc 100644 --- a/infer/tests/codetoanalyze/java/infer/HashMapExample.java +++ b/infer/tests/codetoanalyze/java/infer/HashMapExample.java @@ -1,6 +1,10 @@ /* - * Copyright (c) 2013- Facebook. - * All rights reserved. +* Copyright (c) 2013 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ package codetoanalyze.java.infer; diff --git a/infer/tests/codetoanalyze/java/infer/IntegerExample.java b/infer/tests/codetoanalyze/java/infer/IntegerExample.java index 6f3887281..6186d0cf6 100644 --- a/infer/tests/codetoanalyze/java/infer/IntegerExample.java +++ b/infer/tests/codetoanalyze/java/infer/IntegerExample.java @@ -1,3 +1,12 @@ +/* +* Copyright (c) 2015 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. +*/ + import java.util.HashMap; public class IntegerExample { diff --git a/infer/tests/codetoanalyze/java/infer/JunitAssertion.java b/infer/tests/codetoanalyze/java/infer/JunitAssertion.java index 757ed8642..532265bdb 100644 --- a/infer/tests/codetoanalyze/java/infer/JunitAssertion.java +++ b/infer/tests/codetoanalyze/java/infer/JunitAssertion.java @@ -1,3 +1,12 @@ +/* +* Copyright (c) 2015 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. +*/ + package codetoanalyze.java.infer; import static junit.framework.Assert.assertFalse; diff --git a/infer/tests/codetoanalyze/java/infer/NeverNullSource.java b/infer/tests/codetoanalyze/java/infer/NeverNullSource.java index accce772f..7196d87fb 100644 --- a/infer/tests/codetoanalyze/java/infer/NeverNullSource.java +++ b/infer/tests/codetoanalyze/java/infer/NeverNullSource.java @@ -1,6 +1,10 @@ /* -* Copyright (c) 2015-present Facebook. +* Copyright (c) 2015 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ // _AUTOMATICALLY_GENERATED_ diff --git a/infer/tests/codetoanalyze/java/infer/NullPointerExceptions.java b/infer/tests/codetoanalyze/java/infer/NullPointerExceptions.java index abe3670db..7c5162bcf 100644 --- a/infer/tests/codetoanalyze/java/infer/NullPointerExceptions.java +++ b/infer/tests/codetoanalyze/java/infer/NullPointerExceptions.java @@ -1,6 +1,10 @@ /* - * Copyright (c) 2013- Facebook. - * All rights reserved. +* Copyright (c) 2013 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ package codetoanalyze.java.infer; diff --git a/infer/tests/codetoanalyze/java/infer/ReaderLeaks.java b/infer/tests/codetoanalyze/java/infer/ReaderLeaks.java index f036f813b..c0d0cb66c 100644 --- a/infer/tests/codetoanalyze/java/infer/ReaderLeaks.java +++ b/infer/tests/codetoanalyze/java/infer/ReaderLeaks.java @@ -1,6 +1,10 @@ /* -* Copyright (c) 2013- Facebook. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ package codetoanalyze.java.infer; diff --git a/infer/tests/codetoanalyze/java/infer/ResourceLeaks.java b/infer/tests/codetoanalyze/java/infer/ResourceLeaks.java index 9304bd1d9..17c5adc0b 100644 --- a/infer/tests/codetoanalyze/java/infer/ResourceLeaks.java +++ b/infer/tests/codetoanalyze/java/infer/ResourceLeaks.java @@ -1,6 +1,10 @@ /* -* Copyright (c) 2013- Facebook. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ package codetoanalyze.java.infer; diff --git a/infer/tests/codetoanalyze/java/infer/ReturnValueIgnored.java b/infer/tests/codetoanalyze/java/infer/ReturnValueIgnored.java index dc7bd2242..d624db553 100644 --- a/infer/tests/codetoanalyze/java/infer/ReturnValueIgnored.java +++ b/infer/tests/codetoanalyze/java/infer/ReturnValueIgnored.java @@ -1,6 +1,10 @@ /* -* Copyright (c) 2013- Facebook. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ package codetoanalyze.java.infer; diff --git a/infer/tests/codetoanalyze/java/infer/SomeLibrary.java b/infer/tests/codetoanalyze/java/infer/SomeLibrary.java index ad71d8671..2e39803e5 100644 --- a/infer/tests/codetoanalyze/java/infer/SomeLibrary.java +++ b/infer/tests/codetoanalyze/java/infer/SomeLibrary.java @@ -1,3 +1,12 @@ +/* +* Copyright (c) 2015 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. +*/ + package codetoanalyze.java.infer; public class SomeLibrary { diff --git a/infer/tests/codetoanalyze/java/infer/T.java b/infer/tests/codetoanalyze/java/infer/T.java index f10111a0f..15e336344 100644 --- a/infer/tests/codetoanalyze/java/infer/T.java +++ b/infer/tests/codetoanalyze/java/infer/T.java @@ -1,6 +1,10 @@ /* -* Copyright (c) 2015-present Facebook. +* Copyright (c) 2015 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ package codetoanalyze.java.infer; diff --git a/infer/tests/codetoanalyze/java/infer/Utils.java b/infer/tests/codetoanalyze/java/infer/Utils.java index 75f100dbf..6ffa3a8cb 100644 --- a/infer/tests/codetoanalyze/java/infer/Utils.java +++ b/infer/tests/codetoanalyze/java/infer/Utils.java @@ -1,6 +1,10 @@ /* -* Copyright (c) 2015-present Facebook. +* Copyright (c) 2015 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ package codetoanalyze.java.infer; diff --git a/infer/tests/codetoanalyze/java/infer/WriterLeaks.java b/infer/tests/codetoanalyze/java/infer/WriterLeaks.java index e670a02cc..3bb1e1635 100644 --- a/infer/tests/codetoanalyze/java/infer/WriterLeaks.java +++ b/infer/tests/codetoanalyze/java/infer/WriterLeaks.java @@ -1,6 +1,10 @@ /* -* Copyright (c) 2013- Facebook. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ diff --git a/infer/tests/codetoanalyze/java/tracing/ArrayIndexOutOfBoundsExceptionExample.java b/infer/tests/codetoanalyze/java/tracing/ArrayIndexOutOfBoundsExceptionExample.java index 7fc5ed051..19744c7e0 100644 --- a/infer/tests/codetoanalyze/java/tracing/ArrayIndexOutOfBoundsExceptionExample.java +++ b/infer/tests/codetoanalyze/java/tracing/ArrayIndexOutOfBoundsExceptionExample.java @@ -1,6 +1,10 @@ /* -* Copyright (c) 2015-present Facebook. +* Copyright (c) 2015 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ package codetoanalyze.java.tracing; diff --git a/infer/tests/codetoanalyze/java/tracing/ClassCastExceptionExample.java b/infer/tests/codetoanalyze/java/tracing/ClassCastExceptionExample.java index 6f3ce1aec..0fdd81293 100644 --- a/infer/tests/codetoanalyze/java/tracing/ClassCastExceptionExample.java +++ b/infer/tests/codetoanalyze/java/tracing/ClassCastExceptionExample.java @@ -1,6 +1,10 @@ /* -* Copyright (c) 2015-present Facebook. +* Copyright (c) 2015 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ package codetoanalyze.java.tracing; diff --git a/infer/tests/codetoanalyze/java/tracing/LocallyDefinedExceptionExample.java b/infer/tests/codetoanalyze/java/tracing/LocallyDefinedExceptionExample.java index effc5e24d..a9b5c77e9 100644 --- a/infer/tests/codetoanalyze/java/tracing/LocallyDefinedExceptionExample.java +++ b/infer/tests/codetoanalyze/java/tracing/LocallyDefinedExceptionExample.java @@ -1,6 +1,10 @@ /* -* Copyright (c) 2015-present Facebook. +* Copyright (c) 2015 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ diff --git a/infer/tests/codetoanalyze/java/tracing/NullPointerExceptionExample.java b/infer/tests/codetoanalyze/java/tracing/NullPointerExceptionExample.java index 8af6a9d25..63dc40c92 100644 --- a/infer/tests/codetoanalyze/java/tracing/NullPointerExceptionExample.java +++ b/infer/tests/codetoanalyze/java/tracing/NullPointerExceptionExample.java @@ -1,6 +1,10 @@ /* -* Copyright (c) 2015-present Facebook. +* Copyright (c) 2015 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ package codetoanalyze.java.tracing; diff --git a/infer/tests/codetoanalyze/java/tracing/ReportOnMainExample.java b/infer/tests/codetoanalyze/java/tracing/ReportOnMainExample.java index f38c4f302..9e5879cdd 100644 --- a/infer/tests/codetoanalyze/java/tracing/ReportOnMainExample.java +++ b/infer/tests/codetoanalyze/java/tracing/ReportOnMainExample.java @@ -1,6 +1,10 @@ /* -* Copyright (c) 2015-present Facebook. +* Copyright (c) 2015 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ package codetoanalyze.java.tracing; diff --git a/infer/tests/codetoanalyze/java/tracing/T.java b/infer/tests/codetoanalyze/java/tracing/T.java index 0982a491e..46bb14a5a 100644 --- a/infer/tests/codetoanalyze/java/tracing/T.java +++ b/infer/tests/codetoanalyze/java/tracing/T.java @@ -1,6 +1,10 @@ /* -* Copyright (c) 2015-present Facebook. +* Copyright (c) 2015 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ diff --git a/infer/tests/codetoanalyze/java/tracing/UnavoidableExceptionExample.java b/infer/tests/codetoanalyze/java/tracing/UnavoidableExceptionExample.java index e4af0dc82..6864c900b 100644 --- a/infer/tests/codetoanalyze/java/tracing/UnavoidableExceptionExample.java +++ b/infer/tests/codetoanalyze/java/tracing/UnavoidableExceptionExample.java @@ -1,6 +1,10 @@ /* -* Copyright (c) 2015-present Facebook. +* Copyright (c) 2015 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ package codetoanalyze.java.tracing; diff --git a/infer/tests/codetoanalyze/objc/errors/category_procdesc/EOCPerson.dot b/infer/tests/codetoanalyze/objc/errors/category_procdesc/EOCPerson.dot index af6d7db89..d4f68dcdf 100644 --- a/infer/tests/codetoanalyze/objc/errors/category_procdesc/EOCPerson.dot +++ b/infer/tests/codetoanalyze/objc/errors/category_procdesc/EOCPerson.dot @@ -1,23 +1,23 @@ digraph iCFG { -6 [label="6: Call _fun_NSLog \n n$1=_fun_NSString_stringWithUTF8String:(\"BTaking vacations\":char *) [line 16]\n _fun_NSLog(n$1:struct objc_object *) [line 16]\n REMOVE_TEMPS(n$1); [line 16]\n APPLY_ABSTRACTION; [line 16]\n " shape="box"] +6 [label="6: Call _fun_NSLog \n n$1=_fun_NSString_stringWithUTF8String:(\"BTaking vacations\":char *) [line 20]\n _fun_NSLog(n$1:struct objc_object *) [line 20]\n REMOVE_TEMPS(n$1); [line 20]\n APPLY_ABSTRACTION; [line 20]\n " shape="box"] 6 -> 5 ; 5 [label="5: Exit EOCPerson_takeVacationFromWork \n " color=yellow style=filled] -4 [label="4: Start EOCPerson_takeVacationFromWork\nFormals: self:class EOCPerson *\nLocals: \n DECLARE_LOCALS(&return); [line 15]\n NULLIFY(&self,false); [line 15]\n " color=yellow style=filled] +4 [label="4: Start EOCPerson_takeVacationFromWork\nFormals: self:class EOCPerson *\nLocals: \n DECLARE_LOCALS(&return); [line 19]\n NULLIFY(&self,false); [line 19]\n " color=yellow style=filled] 4 -> 6 ; -3 [label="3: Call _fun_NSLog \n n$0=_fun_NSString_stringWithUTF8String:(\"Performing days at work\":char *) [line 11]\n _fun_NSLog(n$0:struct objc_object *) [line 11]\n REMOVE_TEMPS(n$0); [line 11]\n APPLY_ABSTRACTION; [line 11]\n " shape="box"] +3 [label="3: Call _fun_NSLog \n n$0=_fun_NSString_stringWithUTF8String:(\"Performing days at work\":char *) [line 15]\n _fun_NSLog(n$0:struct objc_object *) [line 15]\n REMOVE_TEMPS(n$0); [line 15]\n APPLY_ABSTRACTION; [line 15]\n " shape="box"] 3 -> 2 ; 2 [label="2: Exit EOCPerson_performDaysWork \n " color=yellow style=filled] -1 [label="1: Start EOCPerson_performDaysWork\nFormals: self:class EOCPerson *\nLocals: \n DECLARE_LOCALS(&return); [line 10]\n NULLIFY(&self,false); [line 10]\n " color=yellow style=filled] +1 [label="1: Start EOCPerson_performDaysWork\nFormals: self:class EOCPerson *\nLocals: \n DECLARE_LOCALS(&return); [line 14]\n NULLIFY(&self,false); [line 14]\n " color=yellow style=filled] 1 -> 3 ; diff --git a/infer/tests/codetoanalyze/objc/errors/category_procdesc/EOCPerson.h b/infer/tests/codetoanalyze/objc/errors/category_procdesc/EOCPerson.h index 309a4d559..d2761c4cf 100644 --- a/infer/tests/codetoanalyze/objc/errors/category_procdesc/EOCPerson.h +++ b/infer/tests/codetoanalyze/objc/errors/category_procdesc/EOCPerson.h @@ -1,6 +1,10 @@ /* - * Copyright (c) 2013 - Facebook. - * All rights reserved. +* Copyright (c) 2013 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ // Splitting EOCPerson into categories diff --git a/infer/tests/codetoanalyze/objc/errors/category_procdesc/EOCPerson.m b/infer/tests/codetoanalyze/objc/errors/category_procdesc/EOCPerson.m index 3cac428d6..508651e4d 100644 --- a/infer/tests/codetoanalyze/objc/errors/category_procdesc/EOCPerson.m +++ b/infer/tests/codetoanalyze/objc/errors/category_procdesc/EOCPerson.m @@ -1,6 +1,10 @@ /* - * Copyright (c) 2013 - Facebook. - * All rights reserved. +* Copyright (c) 2013 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ #import "EOCPerson.h" diff --git a/infer/tests/codetoanalyze/objc/errors/category_procdesc/main.c b/infer/tests/codetoanalyze/objc/errors/category_procdesc/main.c index 2f8a5a078..d3a651311 100644 --- a/infer/tests/codetoanalyze/objc/errors/category_procdesc/main.c +++ b/infer/tests/codetoanalyze/objc/errors/category_procdesc/main.c @@ -1,6 +1,10 @@ /* - * Copyright (c) 2013 - Facebook. - * All rights reserved. +* Copyright (c) 2013 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ #import "EOCPerson.h" diff --git a/infer/tests/codetoanalyze/objc/errors/category_procdesc/main.dot b/infer/tests/codetoanalyze/objc/errors/category_procdesc/main.dot index 241f0669b..4f93f78c4 100644 --- a/infer/tests/codetoanalyze/objc/errors/category_procdesc/main.dot +++ b/infer/tests/codetoanalyze/objc/errors/category_procdesc/main.dot @@ -1,24 +1,24 @@ digraph iCFG { -6 [label="6: DeclStmt \n n$4=_fun___objc_alloc_no_fail(sizeof(class EOCPerson ):class EOCPerson *) [line 9]\n n$2=_fun_EOCPerson_init(n$4:class EOCPerson *) virtual [line 9]\n *&person:class EOCPerson *=n$2 [line 9]\n REMOVE_TEMPS(n$2,n$4); [line 9]\n " shape="box"] +6 [label="6: DeclStmt \n n$4=_fun___objc_alloc_no_fail(sizeof(class EOCPerson ):class EOCPerson *) [line 13]\n n$2=_fun_EOCPerson_init(n$4:class EOCPerson *) virtual [line 13]\n *&person:class EOCPerson *=n$2 [line 13]\n REMOVE_TEMPS(n$2,n$4); [line 13]\n " shape="box"] 6 -> 5 ; -5 [label="5: Message Call: performDaysWork \n n$1=*&person:class EOCPerson * [line 10]\n _fun_EOCPerson_performDaysWork(n$1:class EOCPerson *) virtual [line 10]\n REMOVE_TEMPS(n$1); [line 10]\n NULLIFY(&person,false); [line 10]\n " shape="box"] +5 [label="5: Message Call: performDaysWork \n n$1=*&person:class EOCPerson * [line 14]\n _fun_EOCPerson_performDaysWork(n$1:class EOCPerson *) virtual [line 14]\n REMOVE_TEMPS(n$1); [line 14]\n NULLIFY(&person,false); [line 14]\n " shape="box"] 5 -> 4 ; -4 [label="4: DeclStmt \n n$0=_fun_malloc_no_fail(sizeof(int ):int ) [line 11]\n *&x:int *=n$0 [line 11]\n REMOVE_TEMPS(n$0); [line 11]\n NULLIFY(&x,false); [line 11]\n " shape="box"] +4 [label="4: DeclStmt \n n$0=_fun_malloc_no_fail(sizeof(int ):int ) [line 15]\n *&x:int *=n$0 [line 15]\n REMOVE_TEMPS(n$0); [line 15]\n NULLIFY(&x,false); [line 15]\n " shape="box"] 4 -> 3 ; -3 [label="3: Return Stmt \n *&return:int =0 [line 12]\n APPLY_ABSTRACTION; [line 12]\n " shape="box"] +3 [label="3: Return Stmt \n *&return:int =0 [line 16]\n APPLY_ABSTRACTION; [line 16]\n " shape="box"] 3 -> 2 ; 2 [label="2: Exit main \n " color=yellow style=filled] -1 [label="1: Start main\nFormals: \nLocals: person:class EOCPerson * x:int * \n DECLARE_LOCALS(&return,&person,&x); [line 8]\n NULLIFY(&person,false); [line 8]\n NULLIFY(&x,false); [line 8]\n " color=yellow style=filled] +1 [label="1: Start main\nFormals: \nLocals: person:class EOCPerson * x:int * \n DECLARE_LOCALS(&return,&person,&x); [line 12]\n NULLIFY(&person,false); [line 12]\n NULLIFY(&x,false); [line 12]\n " color=yellow style=filled] 1 -> 6 ; diff --git a/infer/tests/codetoanalyze/objc/errors/field_superclass/A.h b/infer/tests/codetoanalyze/objc/errors/field_superclass/A.h index add1dbd52..070dc15ce 100644 --- a/infer/tests/codetoanalyze/objc/errors/field_superclass/A.h +++ b/infer/tests/codetoanalyze/objc/errors/field_superclass/A.h @@ -1,6 +1,10 @@ /* - * Copyright (c) 2014 - Facebook. - * All rights reserved. +* Copyright (c) 2014 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ diff --git a/infer/tests/codetoanalyze/objc/errors/field_superclass/B.h b/infer/tests/codetoanalyze/objc/errors/field_superclass/B.h index 30fdfdb9a..9fc7d8002 100644 --- a/infer/tests/codetoanalyze/objc/errors/field_superclass/B.h +++ b/infer/tests/codetoanalyze/objc/errors/field_superclass/B.h @@ -1,6 +1,10 @@ /* - * Copyright (c) 2014 - Facebook. - * All rights reserved. +* Copyright (c) 2014 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ diff --git a/infer/tests/codetoanalyze/objc/errors/field_superclass/B.m b/infer/tests/codetoanalyze/objc/errors/field_superclass/B.m index c30515daf..92fce0c9c 100644 --- a/infer/tests/codetoanalyze/objc/errors/field_superclass/B.m +++ b/infer/tests/codetoanalyze/objc/errors/field_superclass/B.m @@ -1,6 +1,10 @@ /* - * Copyright (c) 2014 - Facebook. - * All rights reserved. +* Copyright (c) 2014 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ #import "B.h" diff --git a/infer/tests/codetoanalyze/objc/errors/field_superclass/SuperExample.dot b/infer/tests/codetoanalyze/objc/errors/field_superclass/SuperExample.dot index 3d0451ea4..c88bff4dc 100644 --- a/infer/tests/codetoanalyze/objc/errors/field_superclass/SuperExample.dot +++ b/infer/tests/codetoanalyze/objc/errors/field_superclass/SuperExample.dot @@ -1,46 +1,46 @@ digraph iCFG { -12 [label="12: DeclStmt \n n$6=_fun___objc_alloc_no_fail(sizeof(class A ):class A *) [line 41]\n n$7=_fun_A_init(n$6:class A *) virtual [line 41]\n *&a:struct objc_object *=n$7 [line 42]\n REMOVE_TEMPS(n$6,n$7); [line 42]\n NULLIFY(&a,false); [line 42]\n " shape="box"] +12 [label="12: DeclStmt \n n$6=_fun___objc_alloc_no_fail(sizeof(class A ):class A *) [line 45]\n n$7=_fun_A_init(n$6:class A *) virtual [line 45]\n *&a:struct objc_object *=n$7 [line 46]\n REMOVE_TEMPS(n$6,n$7); [line 46]\n NULLIFY(&a,false); [line 46]\n " shape="box"] 12 -> 11 ; -11 [label="11: Release the autorelease pool \n n$4=_fun___objc_release_autorelease_pool() [line 40]\n REMOVE_TEMPS(n$4); [line 40]\n APPLY_ABSTRACTION; [line 40]\n " shape="box"] +11 [label="11: Release the autorelease pool \n n$4=_fun___objc_release_autorelease_pool() [line 44]\n REMOVE_TEMPS(n$4); [line 44]\n APPLY_ABSTRACTION; [line 44]\n " shape="box"] 11 -> 10 ; 10 [label="10: Exit main \n " color=yellow style=filled] -9 [label="9: Start main\nFormals: argc:int argv:char **\nLocals: a:struct objc_object * \n DECLARE_LOCALS(&return,&a); [line 39]\n NULLIFY(&a,false); [line 39]\n NULLIFY(&argc,false); [line 39]\n NULLIFY(&argv,false); [line 39]\n " color=yellow style=filled] +9 [label="9: Start main\nFormals: argc:int argv:char **\nLocals: a:struct objc_object * \n DECLARE_LOCALS(&return,&a); [line 43]\n NULLIFY(&a,false); [line 43]\n NULLIFY(&argc,false); [line 43]\n NULLIFY(&argv,false); [line 43]\n " color=yellow style=filled] 9 -> 12 ; -8 [label="8: BinaryOperatorStmt: Assign \n n$3=*&self:class A * [line 32]\n n$2=_fun_B_init(n$3:class A *) [line 32]\n *&self:class A *=n$2 [line 32]\n REMOVE_TEMPS(n$2,n$3); [line 32]\n " shape="box"] +8 [label="8: BinaryOperatorStmt: Assign \n n$3=*&self:class A * [line 36]\n n$2=_fun_B_init(n$3:class A *) [line 36]\n *&self:class A *=n$2 [line 36]\n REMOVE_TEMPS(n$2,n$3); [line 36]\n " shape="box"] 8 -> 7 ; -7 [label="7: BinaryOperatorStmt: Assign \n n$1=*&self:class A * [line 33]\n *n$1.a:int =4 [line 33]\n REMOVE_TEMPS(n$1); [line 33]\n " shape="box"] +7 [label="7: BinaryOperatorStmt: Assign \n n$1=*&self:class A * [line 37]\n *n$1.a:int =4 [line 37]\n REMOVE_TEMPS(n$1); [line 37]\n " shape="box"] 7 -> 6 ; -6 [label="6: Return Stmt \n n$0=*&self:class A * [line 34]\n *&return:struct objc_object *=n$0 [line 34]\n REMOVE_TEMPS(n$0); [line 34]\n NULLIFY(&self,false); [line 34]\n APPLY_ABSTRACTION; [line 34]\n " shape="box"] +6 [label="6: Return Stmt \n n$0=*&self:class A * [line 38]\n *&return:struct objc_object *=n$0 [line 38]\n REMOVE_TEMPS(n$0); [line 38]\n NULLIFY(&self,false); [line 38]\n APPLY_ABSTRACTION; [line 38]\n " shape="box"] 6 -> 5 ; 5 [label="5: Exit A_init \n " color=yellow style=filled] -4 [label="4: Start A_init\nFormals: self:class A *\nLocals: \n DECLARE_LOCALS(&return); [line 30]\n " color=yellow style=filled] +4 [label="4: Start A_init\nFormals: self:class A *\nLocals: \n DECLARE_LOCALS(&return); [line 34]\n " color=yellow style=filled] 4 -> 8 ; -3 [label="3: Return Stmt \n *&return:struct objc_object *=0 [line 16]\n APPLY_ABSTRACTION; [line 16]\n " shape="box"] +3 [label="3: Return Stmt \n *&return:struct objc_object *=0 [line 20]\n APPLY_ABSTRACTION; [line 20]\n " shape="box"] 3 -> 2 ; 2 [label="2: Exit B_init \n " color=yellow style=filled] -1 [label="1: Start B_init\nFormals: self:class B *\nLocals: \n DECLARE_LOCALS(&return); [line 14]\n NULLIFY(&self,false); [line 14]\n " color=yellow style=filled] +1 [label="1: Start B_init\nFormals: self:class B *\nLocals: \n DECLARE_LOCALS(&return); [line 18]\n NULLIFY(&self,false); [line 18]\n " color=yellow style=filled] 1 -> 3 ; diff --git a/infer/tests/codetoanalyze/objc/errors/field_superclass/SuperExample.m b/infer/tests/codetoanalyze/objc/errors/field_superclass/SuperExample.m index e0794e7d9..f8c1df210 100644 --- a/infer/tests/codetoanalyze/objc/errors/field_superclass/SuperExample.m +++ b/infer/tests/codetoanalyze/objc/errors/field_superclass/SuperExample.m @@ -1,6 +1,10 @@ /* - * Copyright (c) 2014 - Facebook. - * All rights reserved. +* Copyright (c) 2014 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ #import diff --git a/infer/tests/codetoanalyze/objc/errors/field_superclass/field.c b/infer/tests/codetoanalyze/objc/errors/field_superclass/field.c index 3c4266a82..2792ecef6 100644 --- a/infer/tests/codetoanalyze/objc/errors/field_superclass/field.c +++ b/infer/tests/codetoanalyze/objc/errors/field_superclass/field.c @@ -1,6 +1,10 @@ /* - * Copyright (c) 2014 - Facebook. - * All rights reserved. +* Copyright (c) 2014 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ #include "B.h" diff --git a/infer/tests/codetoanalyze/objc/errors/memory_leaks_benchmark/ArcExample.dot b/infer/tests/codetoanalyze/objc/errors/memory_leaks_benchmark/ArcExample.dot index 033e342af..09f7eaae9 100644 --- a/infer/tests/codetoanalyze/objc/errors/memory_leaks_benchmark/ArcExample.dot +++ b/infer/tests/codetoanalyze/objc/errors/memory_leaks_benchmark/ArcExample.dot @@ -1,5 +1,5 @@ digraph iCFG { -14 [label="14: BinaryOperatorStmt: Assign \n n$10=*&self:class A * [line 12]\n n$11=*&son:class A * [line 12]\n _fun___objc_retain(n$11:class A *) [line -1]\n n$12=*n$10._son:class A * [line -1]\n *n$10._son:class A *=n$11 [line -1]\n _fun___objc_release(n$12:class A *) [line -1]\n REMOVE_TEMPS(n$10,n$11,n$12); [line -1]\n NULLIFY(&self,false); [line -1]\n NULLIFY(&son,false); [line -1]\n APPLY_ABSTRACTION; [line -1]\n " shape="box"] +14 [label="14: BinaryOperatorStmt: Assign \n n$10=*&self:class A * [line 16]\n n$11=*&son:class A * [line 16]\n _fun___objc_retain(n$11:class A *) [line -1]\n n$12=*n$10._son:class A * [line -1]\n *n$10._son:class A *=n$11 [line -1]\n _fun___objc_release(n$12:class A *) [line -1]\n REMOVE_TEMPS(n$10,n$11,n$12); [line -1]\n NULLIFY(&self,false); [line -1]\n NULLIFY(&son,false); [line -1]\n APPLY_ABSTRACTION; [line -1]\n " shape="box"] 14 -> 13 ; @@ -21,33 +21,33 @@ digraph iCFG { 9 -> 11 ; -8 [label="8: DeclStmt \n n$6=_fun___objc_alloc_no_fail(sizeof(class NSString ):class NSString *) [line 25]\n *&s:class NSString *=n$6 [line 25]\n REMOVE_TEMPS(n$6); [line 25]\n " shape="box"] +8 [label="8: DeclStmt \n n$6=_fun___objc_alloc_no_fail(sizeof(class NSString ):class NSString *) [line 29]\n *&s:class NSString *=n$6 [line 29]\n REMOVE_TEMPS(n$6); [line 29]\n " shape="box"] 8 -> 7 ; -7 [label="7: Return Stmt \n n$4=*&s:class NSString * [line 26]\n *&return:class NSString *=n$4 [line 26]\n REMOVE_TEMPS(n$4); [line 26]\n NULLIFY(&s,false); [line 26]\n APPLY_ABSTRACTION; [line 26]\n " shape="box"] +7 [label="7: Return Stmt \n n$4=*&s:class NSString * [line 30]\n *&return:class NSString *=n$4 [line 30]\n REMOVE_TEMPS(n$4); [line 30]\n NULLIFY(&s,false); [line 30]\n APPLY_ABSTRACTION; [line 30]\n " shape="box"] 7 -> 6 ; 6 [label="6: Exit A_newS \n " color=yellow style=filled] -5 [label="5: Start A_newS\nFormals: self:class A *\nLocals: s:class NSString * \n DECLARE_LOCALS(&return,&s); [line 24]\n NULLIFY(&s,false); [line 24]\n NULLIFY(&self,false); [line 24]\n " color=yellow style=filled] +5 [label="5: Start A_newS\nFormals: self:class A *\nLocals: s:class NSString * \n DECLARE_LOCALS(&return,&s); [line 28]\n NULLIFY(&s,false); [line 28]\n NULLIFY(&self,false); [line 28]\n " color=yellow style=filled] 5 -> 8 ; -4 [label="4: DeclStmt \n n$3=_fun___objc_alloc_no_fail(sizeof(class NSString ):class NSString *) [line 19]\n *&s:class NSString *=n$3 [line 19]\n REMOVE_TEMPS(n$3); [line 19]\n " shape="box"] +4 [label="4: DeclStmt \n n$3=_fun___objc_alloc_no_fail(sizeof(class NSString ):class NSString *) [line 23]\n *&s:class NSString *=n$3 [line 23]\n REMOVE_TEMPS(n$3); [line 23]\n " shape="box"] 4 -> 3 ; -3 [label="3: Return Stmt \n n$0=*&s:class NSString * [line 20]\n *&return:class NSString *=n$0 [line 20]\n n$1=_fun___set_autorelease_attribute(n$0:class NSString *) [line 20]\n REMOVE_TEMPS(n$0,n$1); [line 20]\n NULLIFY(&s,false); [line 20]\n APPLY_ABSTRACTION; [line 20]\n " shape="box"] +3 [label="3: Return Stmt \n n$0=*&s:class NSString * [line 24]\n *&return:class NSString *=n$0 [line 24]\n n$1=_fun___set_autorelease_attribute(n$0:class NSString *) [line 24]\n REMOVE_TEMPS(n$0,n$1); [line 24]\n NULLIFY(&s,false); [line 24]\n APPLY_ABSTRACTION; [line 24]\n " shape="box"] 3 -> 2 ; 2 [label="2: Exit A_getS \n " color=yellow style=filled] -1 [label="1: Start A_getS\nFormals: self:class A *\nLocals: s:class NSString * \n DECLARE_LOCALS(&return,&s); [line 18]\n NULLIFY(&s,false); [line 18]\n NULLIFY(&self,false); [line 18]\n " color=yellow style=filled] +1 [label="1: Start A_getS\nFormals: self:class A *\nLocals: s:class NSString * \n DECLARE_LOCALS(&return,&s); [line 22]\n NULLIFY(&s,false); [line 22]\n NULLIFY(&self,false); [line 22]\n " color=yellow style=filled] 1 -> 4 ; diff --git a/infer/tests/codetoanalyze/objc/errors/memory_leaks_benchmark/ArcExample.m b/infer/tests/codetoanalyze/objc/errors/memory_leaks_benchmark/ArcExample.m index 2adf6de1d..80ef572fe 100644 --- a/infer/tests/codetoanalyze/objc/errors/memory_leaks_benchmark/ArcExample.m +++ b/infer/tests/codetoanalyze/objc/errors/memory_leaks_benchmark/ArcExample.m @@ -1,6 +1,10 @@ /* - * Copyright (c) 2014- Facebook. - * All rights reserved. +* Copyright (c) 2014 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ #import diff --git a/infer/tests/codetoanalyze/objc/errors/memory_leaks_benchmark/AutoreleaseExample.dot b/infer/tests/codetoanalyze/objc/errors/memory_leaks_benchmark/AutoreleaseExample.dot index bc17e339e..3c25daa1d 100644 --- a/infer/tests/codetoanalyze/objc/errors/memory_leaks_benchmark/AutoreleaseExample.dot +++ b/infer/tests/codetoanalyze/objc/errors/memory_leaks_benchmark/AutoreleaseExample.dot @@ -1,125 +1,125 @@ digraph iCFG { -41 [label="41: DeclStmt \n n$30=_fun___objc_alloc_no_fail(sizeof(class NSAutoreleasePool ):class NSAutoreleasePool *) [line 56]\n n$28=_fun_NSAutoreleasePool_init(n$30:class NSAutoreleasePool *) [line 56]\n *&pool:class NSAutoreleasePool *=n$28 [line 56]\n REMOVE_TEMPS(n$28,n$30); [line 56]\n " shape="box"] +41 [label="41: DeclStmt \n n$30=_fun___objc_alloc_no_fail(sizeof(class NSAutoreleasePool ):class NSAutoreleasePool *) [line 60]\n n$28=_fun_NSAutoreleasePool_init(n$30:class NSAutoreleasePool *) [line 60]\n *&pool:class NSAutoreleasePool *=n$28 [line 60]\n REMOVE_TEMPS(n$28,n$30); [line 60]\n " shape="box"] 41 -> 40 ; -40 [label="40: DeclStmt \n n$27=_fun___objc_alloc_no_fail(sizeof(class NSString ):class NSString *) [line 57]\n n$25=_fun___set_autorelease_attribute(n$27:class NSString *) [line 57]\n *&string:class NSString *=n$25 [line 57]\n REMOVE_TEMPS(n$25,n$27); [line 57]\n " shape="box"] +40 [label="40: DeclStmt \n n$27=_fun___objc_alloc_no_fail(sizeof(class NSString ):class NSString *) [line 61]\n n$25=_fun___set_autorelease_attribute(n$27:class NSString *) [line 61]\n *&string:class NSString *=n$25 [line 61]\n REMOVE_TEMPS(n$25,n$27); [line 61]\n " shape="box"] 40 -> 39 ; -39 [label="39: Message Call: release \n n$24=*&pool:class NSAutoreleasePool * [line 59]\n _fun___objc_release_autorelease_pool(n$24:class NSAutoreleasePool *) [line 59]\n REMOVE_TEMPS(n$24); [line 59]\n NULLIFY(&pool,false); [line 59]\n " shape="box"] +39 [label="39: Message Call: release \n n$24=*&pool:class NSAutoreleasePool * [line 63]\n _fun___objc_release_autorelease_pool(n$24:class NSAutoreleasePool *) [line 63]\n REMOVE_TEMPS(n$24); [line 63]\n NULLIFY(&pool,false); [line 63]\n " shape="box"] 39 -> 38 ; -38 [label="38: DeclStmt \n n$23=*&string:class NSString * [line 60]\n *&c:class NSString *=n$23 [line 60]\n REMOVE_TEMPS(n$23); [line 60]\n NULLIFY(&c,false); [line 60]\n NULLIFY(&string,false); [line 60]\n APPLY_ABSTRACTION; [line 60]\n " shape="box"] +38 [label="38: DeclStmt \n n$23=*&string:class NSString * [line 64]\n *&c:class NSString *=n$23 [line 64]\n REMOVE_TEMPS(n$23); [line 64]\n NULLIFY(&c,false); [line 64]\n NULLIFY(&string,false); [line 64]\n APPLY_ABSTRACTION; [line 64]\n " shape="box"] 38 -> 37 ; 37 [label="37: Exit test3 \n " color=yellow style=filled] -36 [label="36: Start test3\nFormals: \nLocals: pool:class NSAutoreleasePool * string:class NSString * c:class NSString * \n DECLARE_LOCALS(&return,&pool,&string,&c); [line 55]\n NULLIFY(&c,false); [line 55]\n NULLIFY(&pool,false); [line 55]\n NULLIFY(&string,false); [line 55]\n " color=yellow style=filled] +36 [label="36: Start test3\nFormals: \nLocals: pool:class NSAutoreleasePool * string:class NSString * c:class NSString * \n DECLARE_LOCALS(&return,&pool,&string,&c); [line 59]\n NULLIFY(&c,false); [line 59]\n NULLIFY(&pool,false); [line 59]\n NULLIFY(&string,false); [line 59]\n " color=yellow style=filled] 36 -> 41 ; -35 [label="35: DeclStmt \n *&s1:class A *=0 [line 44]\n " shape="box"] +35 [label="35: DeclStmt \n *&s1:class A *=0 [line 48]\n " shape="box"] 35 -> 34 ; -34 [label="34: DeclStmt \n *&s2:class A *=0 [line 45]\n " shape="box"] +34 [label="34: DeclStmt \n *&s2:class A *=0 [line 49]\n " shape="box"] 34 -> 33 ; -33 [label="33: DeclStmt \n *&s3:class A *=0 [line 46]\n " shape="box"] +33 [label="33: DeclStmt \n *&s3:class A *=0 [line 50]\n " shape="box"] 33 -> 32 ; -32 [label="32: BinaryOperatorStmt: Assign \n n$22=_fun_createA() [line 48]\n *&s1:class A *=n$22 [line 48]\n REMOVE_TEMPS(n$22); [line 48]\n " shape="box"] +32 [label="32: BinaryOperatorStmt: Assign \n n$22=_fun_createA() [line 52]\n *&s1:class A *=n$22 [line 52]\n REMOVE_TEMPS(n$22); [line 52]\n " shape="box"] 32 -> 31 ; -31 [label="31: BinaryOperatorStmt: Assign \n n$21=_fun_createA() [line 49]\n *&s2:class A *=n$21 [line 49]\n REMOVE_TEMPS(n$21); [line 49]\n " shape="box"] +31 [label="31: BinaryOperatorStmt: Assign \n n$21=_fun_createA() [line 53]\n *&s2:class A *=n$21 [line 53]\n REMOVE_TEMPS(n$21); [line 53]\n " shape="box"] 31 -> 30 ; -30 [label="30: BinaryOperatorStmt: Assign \n n$20=_fun_createA() [line 50]\n *&s3:class A *=n$20 [line 50]\n REMOVE_TEMPS(n$20); [line 50]\n " shape="box"] +30 [label="30: BinaryOperatorStmt: Assign \n n$20=_fun_createA() [line 54]\n *&s3:class A *=n$20 [line 54]\n REMOVE_TEMPS(n$20); [line 54]\n " shape="box"] 30 -> 29 ; -29 [label="29: Release the autorelease pool \n n$19=_fun___objc_release_autorelease_pool(&s1:class A *,&s3:class A *,&s2:class A *) [line 47]\n REMOVE_TEMPS(n$19); [line 47]\n " shape="box"] +29 [label="29: Release the autorelease pool \n n$19=_fun___objc_release_autorelease_pool(&s1:class A *,&s3:class A *,&s2:class A *) [line 51]\n REMOVE_TEMPS(n$19); [line 51]\n " shape="box"] 29 -> 28 ; -28 [label="28: Return Stmt \n *&return:int =0 [line 52]\n NULLIFY(&s1,false); [line 52]\n NULLIFY(&s2,false); [line 52]\n NULLIFY(&s3,false); [line 52]\n APPLY_ABSTRACTION; [line 52]\n " shape="box"] +28 [label="28: Return Stmt \n *&return:int =0 [line 56]\n NULLIFY(&s1,false); [line 56]\n NULLIFY(&s2,false); [line 56]\n NULLIFY(&s3,false); [line 56]\n APPLY_ABSTRACTION; [line 56]\n " shape="box"] 28 -> 27 ; 27 [label="27: Exit test2 \n " color=yellow style=filled] -26 [label="26: Start test2\nFormals: \nLocals: s1:class A * s2:class A * s3:class A * \n DECLARE_LOCALS(&return,&s1,&s2,&s3); [line 43]\n " color=yellow style=filled] +26 [label="26: Start test2\nFormals: \nLocals: s1:class A * s2:class A * s3:class A * \n DECLARE_LOCALS(&return,&s1,&s2,&s3); [line 47]\n " color=yellow style=filled] 26 -> 35 ; -25 [label="25: DeclStmt \n *&s1:class A *=0 [line 31]\n " shape="box"] +25 [label="25: DeclStmt \n *&s1:class A *=0 [line 35]\n " shape="box"] 25 -> 24 ; -24 [label="24: DeclStmt \n *&s2:class A *=0 [line 32]\n " shape="box"] +24 [label="24: DeclStmt \n *&s2:class A *=0 [line 36]\n " shape="box"] 24 -> 23 ; -23 [label="23: DeclStmt \n *&s3:class A *=0 [line 33]\n " shape="box"] +23 [label="23: DeclStmt \n *&s3:class A *=0 [line 37]\n " shape="box"] 23 -> 22 ; -22 [label="22: BinaryOperatorStmt: Assign \n n$18=_fun_createA() [line 35]\n *&s1:class A *=n$18 [line 35]\n REMOVE_TEMPS(n$18); [line 35]\n " shape="box"] +22 [label="22: BinaryOperatorStmt: Assign \n n$18=_fun_createA() [line 39]\n *&s1:class A *=n$18 [line 39]\n REMOVE_TEMPS(n$18); [line 39]\n " shape="box"] 22 -> 21 ; -21 [label="21: Message Call: retain \n n$17=*&s1:class A * [line 36]\n n$16=_fun___objc_retain(n$17:class A *) [line 36]\n REMOVE_TEMPS(n$16,n$17); [line 36]\n " shape="box"] +21 [label="21: Message Call: retain \n n$17=*&s1:class A * [line 40]\n n$16=_fun___objc_retain(n$17:class A *) [line 40]\n REMOVE_TEMPS(n$16,n$17); [line 40]\n " shape="box"] 21 -> 20 ; -20 [label="20: BinaryOperatorStmt: Assign \n n$15=_fun_createA() [line 37]\n *&s2:class A *=n$15 [line 37]\n REMOVE_TEMPS(n$15); [line 37]\n " shape="box"] +20 [label="20: BinaryOperatorStmt: Assign \n n$15=_fun_createA() [line 41]\n *&s2:class A *=n$15 [line 41]\n REMOVE_TEMPS(n$15); [line 41]\n " shape="box"] 20 -> 19 ; -19 [label="19: BinaryOperatorStmt: Assign \n n$14=_fun_createA() [line 38]\n *&s3:class A *=n$14 [line 38]\n REMOVE_TEMPS(n$14); [line 38]\n " shape="box"] +19 [label="19: BinaryOperatorStmt: Assign \n n$14=_fun_createA() [line 42]\n *&s3:class A *=n$14 [line 42]\n REMOVE_TEMPS(n$14); [line 42]\n " shape="box"] 19 -> 18 ; -18 [label="18: Release the autorelease pool \n n$13=_fun___objc_release_autorelease_pool(&s1:class A *,&s2:class A *,&s3:class A *) [line 34]\n REMOVE_TEMPS(n$13); [line 34]\n " shape="box"] +18 [label="18: Release the autorelease pool \n n$13=_fun___objc_release_autorelease_pool(&s1:class A *,&s2:class A *,&s3:class A *) [line 38]\n REMOVE_TEMPS(n$13); [line 38]\n " shape="box"] 18 -> 17 ; -17 [label="17: Return Stmt \n *&return:int =0 [line 40]\n NULLIFY(&s1,false); [line 40]\n NULLIFY(&s2,false); [line 40]\n NULLIFY(&s3,false); [line 40]\n APPLY_ABSTRACTION; [line 40]\n " shape="box"] +17 [label="17: Return Stmt \n *&return:int =0 [line 44]\n NULLIFY(&s1,false); [line 44]\n NULLIFY(&s2,false); [line 44]\n NULLIFY(&s3,false); [line 44]\n APPLY_ABSTRACTION; [line 44]\n " shape="box"] 17 -> 16 ; 16 [label="16: Exit test1 \n " color=yellow style=filled] -15 [label="15: Start test1\nFormals: \nLocals: s1:class A * s2:class A * s3:class A * \n DECLARE_LOCALS(&return,&s1,&s2,&s3); [line 30]\n " color=yellow style=filled] +15 [label="15: Start test1\nFormals: \nLocals: s1:class A * s2:class A * s3:class A * \n DECLARE_LOCALS(&return,&s1,&s2,&s3); [line 34]\n " color=yellow style=filled] 15 -> 25 ; -14 [label="14: DeclStmt \n n$12=_fun___objc_alloc_no_fail(sizeof(class A ):class A *) [line 26]\n n$10=_fun_A_init(n$12:class A *) virtual [line 26]\n *&s1:class A *=n$10 [line 26]\n REMOVE_TEMPS(n$10,n$12); [line 26]\n " shape="box"] +14 [label="14: DeclStmt \n n$12=_fun___objc_alloc_no_fail(sizeof(class A ):class A *) [line 30]\n n$10=_fun_A_init(n$12:class A *) virtual [line 30]\n *&s1:class A *=n$10 [line 30]\n REMOVE_TEMPS(n$10,n$12); [line 30]\n " shape="box"] 14 -> 13 ; -13 [label="13: Return Stmt \n n$9=*&s1:class A * [line 27]\n n$8=_fun___set_autorelease_attribute(n$9:class A *) [line 27]\n *&return:class A *=n$8 [line 27]\n REMOVE_TEMPS(n$8,n$9); [line 27]\n NULLIFY(&s1,false); [line 27]\n APPLY_ABSTRACTION; [line 27]\n " shape="box"] +13 [label="13: Return Stmt \n n$9=*&s1:class A * [line 31]\n n$8=_fun___set_autorelease_attribute(n$9:class A *) [line 31]\n *&return:class A *=n$8 [line 31]\n REMOVE_TEMPS(n$8,n$9); [line 31]\n NULLIFY(&s1,false); [line 31]\n APPLY_ABSTRACTION; [line 31]\n " shape="box"] 13 -> 12 ; 12 [label="12: Exit createA \n " color=yellow style=filled] -11 [label="11: Start createA\nFormals: \nLocals: s1:class A * \n DECLARE_LOCALS(&return,&s1); [line 25]\n NULLIFY(&s1,false); [line 25]\n " color=yellow style=filled] +11 [label="11: Start createA\nFormals: \nLocals: s1:class A * \n DECLARE_LOCALS(&return,&s1); [line 29]\n NULLIFY(&s1,false); [line 29]\n " color=yellow style=filled] 11 -> 14 ; -10 [label="10: BinaryOperatorStmt: Assign \n n$6=*&self:class A * [line 13]\n n$7=*&son:class A * [line 13]\n *n$6._son:class A *=n$7 [line -1]\n REMOVE_TEMPS(n$6,n$7); [line -1]\n NULLIFY(&self,false); [line -1]\n NULLIFY(&son,false); [line -1]\n APPLY_ABSTRACTION; [line -1]\n " shape="box"] +10 [label="10: BinaryOperatorStmt: Assign \n n$6=*&self:class A * [line 17]\n n$7=*&son:class A * [line 17]\n *n$6._son:class A *=n$7 [line -1]\n REMOVE_TEMPS(n$6,n$7); [line -1]\n NULLIFY(&self,false); [line -1]\n NULLIFY(&son,false); [line -1]\n APPLY_ABSTRACTION; [line -1]\n " shape="box"] 10 -> 9 ; @@ -141,18 +141,18 @@ digraph iCFG { 5 -> 7 ; -4 [label="4: DeclStmt \n n$3=_fun___objc_alloc_no_fail(sizeof(class NSString ):class NSString *) [line 19]\n *&s:class NSString *=n$3 [line 19]\n REMOVE_TEMPS(n$3); [line 19]\n " shape="box"] +4 [label="4: DeclStmt \n n$3=_fun___objc_alloc_no_fail(sizeof(class NSString ):class NSString *) [line 23]\n *&s:class NSString *=n$3 [line 23]\n REMOVE_TEMPS(n$3); [line 23]\n " shape="box"] 4 -> 3 ; -3 [label="3: Return Stmt \n n$1=*&s:class NSString * [line 20]\n n$0=_fun___set_autorelease_attribute(n$1:class NSString *) [line 20]\n *&return:class NSString *=n$0 [line 20]\n REMOVE_TEMPS(n$0,n$1); [line 20]\n NULLIFY(&s,false); [line 20]\n APPLY_ABSTRACTION; [line 20]\n " shape="box"] +3 [label="3: Return Stmt \n n$1=*&s:class NSString * [line 24]\n n$0=_fun___set_autorelease_attribute(n$1:class NSString *) [line 24]\n *&return:class NSString *=n$0 [line 24]\n REMOVE_TEMPS(n$0,n$1); [line 24]\n NULLIFY(&s,false); [line 24]\n APPLY_ABSTRACTION; [line 24]\n " shape="box"] 3 -> 2 ; 2 [label="2: Exit A_main \n " color=yellow style=filled] -1 [label="1: Start A_main\nFormals: self:class A *\nLocals: s:class NSString * \n DECLARE_LOCALS(&return,&s); [line 18]\n NULLIFY(&s,false); [line 18]\n NULLIFY(&self,false); [line 18]\n " color=yellow style=filled] +1 [label="1: Start A_main\nFormals: self:class A *\nLocals: s:class NSString * \n DECLARE_LOCALS(&return,&s); [line 22]\n NULLIFY(&s,false); [line 22]\n NULLIFY(&self,false); [line 22]\n " color=yellow style=filled] 1 -> 4 ; diff --git a/infer/tests/codetoanalyze/objc/errors/memory_leaks_benchmark/AutoreleaseExample.m b/infer/tests/codetoanalyze/objc/errors/memory_leaks_benchmark/AutoreleaseExample.m index e9b7bbc84..27ae4c11e 100644 --- a/infer/tests/codetoanalyze/objc/errors/memory_leaks_benchmark/AutoreleaseExample.m +++ b/infer/tests/codetoanalyze/objc/errors/memory_leaks_benchmark/AutoreleaseExample.m @@ -1,6 +1,10 @@ /* - * Copyright (c) 2014 - Facebook. - * All rights reserved. +* Copyright (c) 2014 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ #import diff --git a/infer/tests/codetoanalyze/objc/errors/memory_leaks_benchmark/MemoryLeakExample.dot b/infer/tests/codetoanalyze/objc/errors/memory_leaks_benchmark/MemoryLeakExample.dot index d93410305..ccfa7712b 100644 --- a/infer/tests/codetoanalyze/objc/errors/memory_leaks_benchmark/MemoryLeakExample.dot +++ b/infer/tests/codetoanalyze/objc/errors/memory_leaks_benchmark/MemoryLeakExample.dot @@ -1,5 +1,5 @@ digraph iCFG { -60 [label="60: BinaryOperatorStmt: Assign \n n$41=*&self:class MemoryLeakExample * [line 12]\n n$42=*&attachmentContainerView:class UIView * [line 12]\n *n$41._attachmentContainerView:class UIView *=n$42 [line -1]\n REMOVE_TEMPS(n$41,n$42); [line -1]\n NULLIFY(&attachmentContainerView,false); [line -1]\n NULLIFY(&self,false); [line -1]\n APPLY_ABSTRACTION; [line -1]\n " shape="box"] +60 [label="60: BinaryOperatorStmt: Assign \n n$41=*&self:class MemoryLeakExample * [line 16]\n n$42=*&attachmentContainerView:class UIView * [line 16]\n *n$41._attachmentContainerView:class UIView *=n$42 [line -1]\n REMOVE_TEMPS(n$41,n$42); [line -1]\n NULLIFY(&attachmentContainerView,false); [line -1]\n NULLIFY(&self,false); [line -1]\n APPLY_ABSTRACTION; [line -1]\n " shape="box"] 60 -> 59 ; @@ -21,7 +21,7 @@ digraph iCFG { 55 -> 57 ; -54 [label="54: BinaryOperatorStmt: Assign \n n$37=*&self:class MemoryLeakExample * [line 11]\n n$38=*&backgroundCoveringView:class UIView * [line 11]\n *n$37._backgroundCoveringView:class UIView *=n$38 [line -1]\n REMOVE_TEMPS(n$37,n$38); [line -1]\n NULLIFY(&backgroundCoveringView,false); [line -1]\n NULLIFY(&self,false); [line -1]\n APPLY_ABSTRACTION; [line -1]\n " shape="box"] +54 [label="54: BinaryOperatorStmt: Assign \n n$37=*&self:class MemoryLeakExample * [line 15]\n n$38=*&backgroundCoveringView:class UIView * [line 15]\n *n$37._backgroundCoveringView:class UIView *=n$38 [line -1]\n REMOVE_TEMPS(n$37,n$38); [line -1]\n NULLIFY(&backgroundCoveringView,false); [line -1]\n NULLIFY(&self,false); [line -1]\n APPLY_ABSTRACTION; [line -1]\n " shape="box"] 54 -> 53 ; @@ -43,183 +43,183 @@ digraph iCFG { 49 -> 51 ; -48 [label="48: DeclStmt \n n$34=_fun_FBColorCreateWithGray(0.000000:double ,0.300000:double ) [line 91]\n *&borderColor:struct CGColor *=n$34 [line 91]\n REMOVE_TEMPS(n$34); [line 91]\n " shape="box"] +48 [label="48: DeclStmt \n n$34=_fun_FBColorCreateWithGray(0.000000:double ,0.300000:double ) [line 95]\n *&borderColor:struct CGColor *=n$34 [line 95]\n REMOVE_TEMPS(n$34); [line 95]\n " shape="box"] 48 -> 47 ; -47 [label="47: Call _fun_CGColorRelease \n n$33=*&borderColor:struct CGColor * [line 92]\n _fun_CGColorRelease(n$33:struct CGColor *) [line 92]\n REMOVE_TEMPS(n$33); [line 92]\n NULLIFY(&borderColor,false); [line 92]\n APPLY_ABSTRACTION; [line 92]\n " shape="box"] +47 [label="47: Call _fun_CGColorRelease \n n$33=*&borderColor:struct CGColor * [line 96]\n _fun_CGColorRelease(n$33:struct CGColor *) [line 96]\n REMOVE_TEMPS(n$33); [line 96]\n NULLIFY(&borderColor,false); [line 96]\n APPLY_ABSTRACTION; [line 96]\n " shape="box"] 47 -> 46 ; 46 [label="46: Exit MemoryLeakExample_testFBColorCreateWithGray \n " color=yellow style=filled] -45 [label="45: Start MemoryLeakExample_testFBColorCreateWithGray\nFormals: self:class MemoryLeakExample *\nLocals: borderColor:struct CGColor * \n DECLARE_LOCALS(&return,&borderColor); [line 89]\n NULLIFY(&borderColor,false); [line 89]\n NULLIFY(&self,false); [line 89]\n " color=yellow style=filled] +45 [label="45: Start MemoryLeakExample_testFBColorCreateWithGray\nFormals: self:class MemoryLeakExample *\nLocals: borderColor:struct CGColor * \n DECLARE_LOCALS(&return,&borderColor); [line 93]\n NULLIFY(&borderColor,false); [line 93]\n NULLIFY(&self,false); [line 93]\n " color=yellow style=filled] 45 -> 48 ; -44 [label="44: DeclStmt \n n$32=_fun_CGBitmapContextCreateImage(0:struct CGContext *) [line 83]\n *&newImage:struct CGImage *=n$32 [line 83]\n REMOVE_TEMPS(n$32); [line 83]\n " shape="box"] +44 [label="44: DeclStmt \n n$32=_fun_CGBitmapContextCreateImage(0:struct CGContext *) [line 87]\n *&newImage:struct CGImage *=n$32 [line 87]\n REMOVE_TEMPS(n$32); [line 87]\n " shape="box"] 44 -> 43 ; -43 [label="43: Call _fun_CGImageRelease \n n$31=*&newImage:struct CGImage * [line 84]\n _fun_CGImageRelease(n$31:struct CGImage *) [line 84]\n REMOVE_TEMPS(n$31); [line 84]\n NULLIFY(&newImage,false); [line 84]\n APPLY_ABSTRACTION; [line 84]\n " shape="box"] +43 [label="43: Call _fun_CGImageRelease \n n$31=*&newImage:struct CGImage * [line 88]\n _fun_CGImageRelease(n$31:struct CGImage *) [line 88]\n REMOVE_TEMPS(n$31); [line 88]\n NULLIFY(&newImage,false); [line 88]\n APPLY_ABSTRACTION; [line 88]\n " shape="box"] 43 -> 42 ; 42 [label="42: Exit MemoryLeakExample_testImageRefRelease \n " color=yellow style=filled] -41 [label="41: Start MemoryLeakExample_testImageRefRelease\nFormals: \nLocals: newImage:struct CGImage * \n DECLARE_LOCALS(&return,&newImage); [line 81]\n NULLIFY(&newImage,false); [line 81]\n " color=yellow style=filled] +41 [label="41: Start MemoryLeakExample_testImageRefRelease\nFormals: \nLocals: newImage:struct CGImage * \n DECLARE_LOCALS(&return,&newImage); [line 85]\n NULLIFY(&newImage,false); [line 85]\n " color=yellow style=filled] 41 -> 44 ; -40 [label="40: DeclStmt \n n$30=_fun_SecTrustCopyPublicKey(0:struct __SecTrust *) [line 77]\n *&allowedPublicKey:struct __SecKey *=n$30 [line 77]\n REMOVE_TEMPS(n$30); [line 77]\n " shape="box"] +40 [label="40: DeclStmt \n n$30=_fun_SecTrustCopyPublicKey(0:struct __SecTrust *) [line 81]\n *&allowedPublicKey:struct __SecKey *=n$30 [line 81]\n REMOVE_TEMPS(n$30); [line 81]\n " shape="box"] 40 -> 39 ; -39 [label="39: Call _fun___objc_release_cf \n n$29=*&allowedPublicKey:struct __SecKey * [line 78]\n _fun___objc_release_cf(1:_Bool ,n$29:void *) [line 78]\n REMOVE_TEMPS(n$29); [line 78]\n NULLIFY(&allowedPublicKey,false); [line 78]\n APPLY_ABSTRACTION; [line 78]\n " shape="box"] +39 [label="39: Call _fun___objc_release_cf \n n$29=*&allowedPublicKey:struct __SecKey * [line 82]\n _fun___objc_release_cf(1:_Bool ,n$29:void *) [line 82]\n REMOVE_TEMPS(n$29); [line 82]\n NULLIFY(&allowedPublicKey,false); [line 82]\n APPLY_ABSTRACTION; [line 82]\n " shape="box"] 39 -> 38 ; 38 [label="38: Exit MemoryLeakExample_test2NoLeak \n " color=yellow style=filled] -37 [label="37: Start MemoryLeakExample_test2NoLeak\nFormals: \nLocals: allowedPublicKey:struct __SecKey * \n DECLARE_LOCALS(&return,&allowedPublicKey); [line 75]\n NULLIFY(&allowedPublicKey,false); [line 75]\n " color=yellow style=filled] +37 [label="37: Start MemoryLeakExample_test2NoLeak\nFormals: \nLocals: allowedPublicKey:struct __SecKey * \n DECLARE_LOCALS(&return,&allowedPublicKey); [line 79]\n NULLIFY(&allowedPublicKey,false); [line 79]\n " color=yellow style=filled] 37 -> 40 ; -36 [label="36: DeclStmt \n n$28=_fun_SecTrustCopyPublicKey(0:struct __SecTrust *) [line 72]\n *&allowedPublicKey:struct __SecKey *=n$28 [line 72]\n REMOVE_TEMPS(n$28); [line 72]\n NULLIFY(&allowedPublicKey,false); [line 72]\n APPLY_ABSTRACTION; [line 72]\n " shape="box"] +36 [label="36: DeclStmt \n n$28=_fun_SecTrustCopyPublicKey(0:struct __SecTrust *) [line 76]\n *&allowedPublicKey:struct __SecKey *=n$28 [line 76]\n REMOVE_TEMPS(n$28); [line 76]\n NULLIFY(&allowedPublicKey,false); [line 76]\n APPLY_ABSTRACTION; [line 76]\n " shape="box"] 36 -> 35 ; 35 [label="35: Exit MemoryLeakExample_test2 \n " color=yellow style=filled] -34 [label="34: Start MemoryLeakExample_test2\nFormals: \nLocals: allowedPublicKey:struct __SecKey * \n DECLARE_LOCALS(&return,&allowedPublicKey); [line 70]\n NULLIFY(&allowedPublicKey,false); [line 70]\n " color=yellow style=filled] +34 [label="34: Start MemoryLeakExample_test2\nFormals: \nLocals: allowedPublicKey:struct __SecKey * \n DECLARE_LOCALS(&return,&allowedPublicKey); [line 74]\n NULLIFY(&allowedPublicKey,false); [line 74]\n " color=yellow style=filled] 34 -> 36 ; -33 [label="33: DeclStmt \n n$26=*&rect:struct CGRect [line 63]\n n$27=_fun_CGRectGetHeight(n$26:struct CGRect ) [line 63]\n *&lineThickness:double =(0.200000 * n$27) [line 63]\n REMOVE_TEMPS(n$26,n$27); [line 63]\n NULLIFY(&rect,false); [line 63]\n NULLIFY(&lineThickness,false); [line 63]\n " shape="box"] +33 [label="33: DeclStmt \n n$26=*&rect:struct CGRect [line 67]\n n$27=_fun_CGRectGetHeight(n$26:struct CGRect ) [line 67]\n *&lineThickness:double =(0.200000 * n$27) [line 67]\n REMOVE_TEMPS(n$26,n$27); [line 67]\n NULLIFY(&rect,false); [line 67]\n NULLIFY(&lineThickness,false); [line 67]\n " shape="box"] 33 -> 32 ; -32 [label="32: DeclStmt \n n$25=_fun_CGPathCreateMutable() [line 66]\n *&path1:struct CGPath *=n$25 [line 66]\n REMOVE_TEMPS(n$25); [line 66]\n " shape="box"] +32 [label="32: DeclStmt \n n$25=_fun_CGPathCreateMutable() [line 70]\n *&path1:struct CGPath *=n$25 [line 70]\n REMOVE_TEMPS(n$25); [line 70]\n " shape="box"] 32 -> 31 ; -31 [label="31: Call _fun___objc_release_cf \n n$24=*&path1:struct CGPath * [line 67]\n _fun___objc_release_cf(1:_Bool ,n$24:void *) [line 67]\n REMOVE_TEMPS(n$24); [line 67]\n NULLIFY(&path1,false); [line 67]\n APPLY_ABSTRACTION; [line 67]\n " shape="box"] +31 [label="31: Call _fun___objc_release_cf \n n$24=*&path1:struct CGPath * [line 71]\n _fun___objc_release_cf(1:_Bool ,n$24:void *) [line 71]\n REMOVE_TEMPS(n$24); [line 71]\n NULLIFY(&path1,false); [line 71]\n APPLY_ABSTRACTION; [line 71]\n " shape="box"] 31 -> 30 ; 30 [label="30: Exit MemoryLeakExample_createCloseCrossGlyphNoLeak: \n " color=yellow style=filled] -29 [label="29: Start MemoryLeakExample_createCloseCrossGlyphNoLeak:\nFormals: rect:struct CGRect \nLocals: lineThickness:double path1:struct CGPath * \n DECLARE_LOCALS(&return,&lineThickness,&path1); [line 61]\n NULLIFY(&lineThickness,false); [line 61]\n NULLIFY(&path1,false); [line 61]\n " color=yellow style=filled] +29 [label="29: Start MemoryLeakExample_createCloseCrossGlyphNoLeak:\nFormals: rect:struct CGRect \nLocals: lineThickness:double path1:struct CGPath * \n DECLARE_LOCALS(&return,&lineThickness,&path1); [line 65]\n NULLIFY(&lineThickness,false); [line 65]\n NULLIFY(&path1,false); [line 65]\n " color=yellow style=filled] 29 -> 33 ; -28 [label="28: DeclStmt \n n$22=*&rect:struct CGRect [line 55]\n n$23=_fun_CGRectGetHeight(n$22:struct CGRect ) [line 55]\n *&lineThickness:double =(0.200000 * n$23) [line 55]\n REMOVE_TEMPS(n$22,n$23); [line 55]\n NULLIFY(&rect,false); [line 55]\n NULLIFY(&lineThickness,false); [line 55]\n " shape="box"] +28 [label="28: DeclStmt \n n$22=*&rect:struct CGRect [line 59]\n n$23=_fun_CGRectGetHeight(n$22:struct CGRect ) [line 59]\n *&lineThickness:double =(0.200000 * n$23) [line 59]\n REMOVE_TEMPS(n$22,n$23); [line 59]\n NULLIFY(&rect,false); [line 59]\n NULLIFY(&lineThickness,false); [line 59]\n " shape="box"] 28 -> 27 ; -27 [label="27: DeclStmt \n n$21=_fun_CGPathCreateMutable() [line 58]\n *&path1:struct CGPath *=n$21 [line 58]\n REMOVE_TEMPS(n$21); [line 58]\n NULLIFY(&path1,false); [line 58]\n APPLY_ABSTRACTION; [line 58]\n " shape="box"] +27 [label="27: DeclStmt \n n$21=_fun_CGPathCreateMutable() [line 62]\n *&path1:struct CGPath *=n$21 [line 62]\n REMOVE_TEMPS(n$21); [line 62]\n NULLIFY(&path1,false); [line 62]\n APPLY_ABSTRACTION; [line 62]\n " shape="box"] 27 -> 26 ; 26 [label="26: Exit MemoryLeakExample_createCloseCrossGlyph: \n " color=yellow style=filled] -25 [label="25: Start MemoryLeakExample_createCloseCrossGlyph:\nFormals: rect:struct CGRect \nLocals: lineThickness:double path1:struct CGPath * \n DECLARE_LOCALS(&return,&lineThickness,&path1); [line 53]\n NULLIFY(&lineThickness,false); [line 53]\n NULLIFY(&path1,false); [line 53]\n " color=yellow style=filled] +25 [label="25: Start MemoryLeakExample_createCloseCrossGlyph:\nFormals: rect:struct CGRect \nLocals: lineThickness:double path1:struct CGPath * \n DECLARE_LOCALS(&return,&lineThickness,&path1); [line 57]\n NULLIFY(&lineThickness,false); [line 57]\n NULLIFY(&path1,false); [line 57]\n " color=yellow style=filled] 25 -> 28 ; -24 [label="24: DeclStmt \n n$20=_fun_CTFramesetterCreateWithAttributedString(0:struct __CFAttributedString *) [line 49]\n *&framesetter:struct __CTFramesetter *=n$20 [line 49]\n REMOVE_TEMPS(n$20); [line 49]\n " shape="box"] +24 [label="24: DeclStmt \n n$20=_fun_CTFramesetterCreateWithAttributedString(0:struct __CFAttributedString *) [line 53]\n *&framesetter:struct __CTFramesetter *=n$20 [line 53]\n REMOVE_TEMPS(n$20); [line 53]\n " shape="box"] 24 -> 23 ; -23 [label="23: Call _fun___objc_release_cf \n n$19=*&framesetter:struct __CTFramesetter * [line 50]\n _fun___objc_release_cf(1:_Bool ,n$19:void *) [line 50]\n REMOVE_TEMPS(n$19); [line 50]\n NULLIFY(&framesetter,false); [line 50]\n APPLY_ABSTRACTION; [line 50]\n " shape="box"] +23 [label="23: Call _fun___objc_release_cf \n n$19=*&framesetter:struct __CTFramesetter * [line 54]\n _fun___objc_release_cf(1:_Bool ,n$19:void *) [line 54]\n REMOVE_TEMPS(n$19); [line 54]\n NULLIFY(&framesetter,false); [line 54]\n APPLY_ABSTRACTION; [line 54]\n " shape="box"] 23 -> 22 ; 22 [label="22: Exit MemoryLeakExample_test1NoLeak \n " color=yellow style=filled] -21 [label="21: Start MemoryLeakExample_test1NoLeak\nFormals: \nLocals: framesetter:struct __CTFramesetter * \n DECLARE_LOCALS(&return,&framesetter); [line 47]\n NULLIFY(&framesetter,false); [line 47]\n " color=yellow style=filled] +21 [label="21: Start MemoryLeakExample_test1NoLeak\nFormals: \nLocals: framesetter:struct __CTFramesetter * \n DECLARE_LOCALS(&return,&framesetter); [line 51]\n NULLIFY(&framesetter,false); [line 51]\n " color=yellow style=filled] 21 -> 24 ; -20 [label="20: DeclStmt \n n$18=_fun_CTFramesetterCreateWithAttributedString(0:struct __CFAttributedString *) [line 44]\n *&framesetter:struct __CTFramesetter *=n$18 [line 44]\n REMOVE_TEMPS(n$18); [line 44]\n NULLIFY(&framesetter,false); [line 44]\n APPLY_ABSTRACTION; [line 44]\n " shape="box"] +20 [label="20: DeclStmt \n n$18=_fun_CTFramesetterCreateWithAttributedString(0:struct __CFAttributedString *) [line 48]\n *&framesetter:struct __CTFramesetter *=n$18 [line 48]\n REMOVE_TEMPS(n$18); [line 48]\n NULLIFY(&framesetter,false); [line 48]\n APPLY_ABSTRACTION; [line 48]\n " shape="box"] 20 -> 19 ; 19 [label="19: Exit MemoryLeakExample_test1 \n " color=yellow style=filled] -18 [label="18: Start MemoryLeakExample_test1\nFormals: \nLocals: framesetter:struct __CTFramesetter * \n DECLARE_LOCALS(&return,&framesetter); [line 42]\n NULLIFY(&framesetter,false); [line 42]\n " color=yellow style=filled] +18 [label="18: Start MemoryLeakExample_test1\nFormals: \nLocals: framesetter:struct __CTFramesetter * \n DECLARE_LOCALS(&return,&framesetter); [line 46]\n NULLIFY(&framesetter,false); [line 46]\n " color=yellow style=filled] 18 -> 20 ; -17 [label="17: DeclStmt \n n$17=_fun_CFAttributedStringCreateMutable(0:struct __CFAllocator *,0:long ) [line 38]\n *&maString:struct __CFAttributedString *=n$17 [line 38]\n REMOVE_TEMPS(n$17); [line 38]\n " shape="box"] +17 [label="17: DeclStmt \n n$17=_fun_CFAttributedStringCreateMutable(0:struct __CFAllocator *,0:long ) [line 42]\n *&maString:struct __CFAttributedString *=n$17 [line 42]\n REMOVE_TEMPS(n$17); [line 42]\n " shape="box"] 17 -> 16 ; -16 [label="16: Call _fun___objc_release_cf \n n$16=*&maString:struct __CFAttributedString * [line 39]\n _fun___objc_release_cf(1:_Bool ,n$16:void *) [line 39]\n REMOVE_TEMPS(n$16); [line 39]\n NULLIFY(&maString,false); [line 39]\n APPLY_ABSTRACTION; [line 39]\n " shape="box"] +16 [label="16: Call _fun___objc_release_cf \n n$16=*&maString:struct __CFAttributedString * [line 43]\n _fun___objc_release_cf(1:_Bool ,n$16:void *) [line 43]\n REMOVE_TEMPS(n$16); [line 43]\n NULLIFY(&maString,false); [line 43]\n APPLY_ABSTRACTION; [line 43]\n " shape="box"] 16 -> 15 ; 15 [label="15: Exit MemoryLeakExample_measureFrameSizeForTextNoLeak \n " color=yellow style=filled] -14 [label="14: Start MemoryLeakExample_measureFrameSizeForTextNoLeak\nFormals: \nLocals: maString:struct __CFAttributedString * \n DECLARE_LOCALS(&return,&maString); [line 36]\n NULLIFY(&maString,false); [line 36]\n " color=yellow style=filled] +14 [label="14: Start MemoryLeakExample_measureFrameSizeForTextNoLeak\nFormals: \nLocals: maString:struct __CFAttributedString * \n DECLARE_LOCALS(&return,&maString); [line 40]\n NULLIFY(&maString,false); [line 40]\n " color=yellow style=filled] 14 -> 17 ; -13 [label="13: DeclStmt \n n$15=_fun_CFAttributedStringCreateMutable(0:struct __CFAllocator *,0:long ) [line 33]\n *&maString:struct __CFAttributedString *=n$15 [line 33]\n REMOVE_TEMPS(n$15); [line 33]\n NULLIFY(&maString,false); [line 33]\n APPLY_ABSTRACTION; [line 33]\n " shape="box"] +13 [label="13: DeclStmt \n n$15=_fun_CFAttributedStringCreateMutable(0:struct __CFAllocator *,0:long ) [line 37]\n *&maString:struct __CFAttributedString *=n$15 [line 37]\n REMOVE_TEMPS(n$15); [line 37]\n NULLIFY(&maString,false); [line 37]\n APPLY_ABSTRACTION; [line 37]\n " shape="box"] 13 -> 12 ; 12 [label="12: Exit MemoryLeakExample_measureFrameSizeForText \n " color=yellow style=filled] -11 [label="11: Start MemoryLeakExample_measureFrameSizeForText\nFormals: \nLocals: maString:struct __CFAttributedString * \n DECLARE_LOCALS(&return,&maString); [line 31]\n NULLIFY(&maString,false); [line 31]\n " color=yellow style=filled] +11 [label="11: Start MemoryLeakExample_measureFrameSizeForText\nFormals: \nLocals: maString:struct __CFAttributedString * \n DECLARE_LOCALS(&return,&maString); [line 35]\n NULLIFY(&maString,false); [line 35]\n " color=yellow style=filled] 11 -> 13 ; -10 [label="10: DeclStmt \n n$13=*&self:class MemoryLeakExample * [line 27]\n n$12=_fun_MemoryLeakExample_backgroundCoveringView(n$13:class MemoryLeakExample *) virtual [line 27]\n n$11=_fun_UIView_bounds(n$12:class UIView *) virtual [line 27]\n n$14=_fun_CGPathCreateWithRect(n$11:struct CGRect ,0:CGAffineTransform *) [line 27]\n *&shadowPath:struct CGPath *=n$14 [line 27]\n REMOVE_TEMPS(n$11,n$12,n$13,n$14); [line 27]\n " shape="box"] +10 [label="10: DeclStmt \n n$13=*&self:class MemoryLeakExample * [line 31]\n n$12=_fun_MemoryLeakExample_backgroundCoveringView(n$13:class MemoryLeakExample *) virtual [line 31]\n n$11=_fun_UIView_bounds(n$12:class UIView *) virtual [line 31]\n n$14=_fun_CGPathCreateWithRect(n$11:struct CGRect ,0:CGAffineTransform *) [line 31]\n *&shadowPath:struct CGPath *=n$14 [line 31]\n REMOVE_TEMPS(n$11,n$12,n$13,n$14); [line 31]\n " shape="box"] 10 -> 9 ; -9 [label="9: Message Call: setShadowPath: \n n$9=*&self:class MemoryLeakExample * [line 28]\n n$8=_fun_MemoryLeakExample_backgroundCoveringView(n$9:class MemoryLeakExample *) virtual [line 28]\n n$7=_fun_UIView_layer(n$8:class UIView *) virtual [line 28]\n n$10=*&shadowPath:struct CGPath * [line 28]\n _fun_CALayer_setShadowPath:(n$7:class CALayer *,n$10:struct CGPath *) virtual [line 28]\n REMOVE_TEMPS(n$7,n$8,n$9,n$10); [line 28]\n NULLIFY(&self,false); [line 28]\n NULLIFY(&shadowPath,false); [line 28]\n APPLY_ABSTRACTION; [line 28]\n " shape="box"] +9 [label="9: Message Call: setShadowPath: \n n$9=*&self:class MemoryLeakExample * [line 32]\n n$8=_fun_MemoryLeakExample_backgroundCoveringView(n$9:class MemoryLeakExample *) virtual [line 32]\n n$7=_fun_UIView_layer(n$8:class UIView *) virtual [line 32]\n n$10=*&shadowPath:struct CGPath * [line 32]\n _fun_CALayer_setShadowPath:(n$7:class CALayer *,n$10:struct CGPath *) virtual [line 32]\n REMOVE_TEMPS(n$7,n$8,n$9,n$10); [line 32]\n NULLIFY(&self,false); [line 32]\n NULLIFY(&shadowPath,false); [line 32]\n APPLY_ABSTRACTION; [line 32]\n " shape="box"] 9 -> 8 ; 8 [label="8: Exit MemoryLeakExample_test \n " color=yellow style=filled] -7 [label="7: Start MemoryLeakExample_test\nFormals: self:class MemoryLeakExample *\nLocals: shadowPath:struct CGPath * \n DECLARE_LOCALS(&return,&shadowPath); [line 25]\n NULLIFY(&shadowPath,false); [line 25]\n " color=yellow style=filled] +7 [label="7: Start MemoryLeakExample_test\nFormals: self:class MemoryLeakExample *\nLocals: shadowPath:struct CGPath * \n DECLARE_LOCALS(&return,&shadowPath); [line 29]\n NULLIFY(&shadowPath,false); [line 29]\n " color=yellow style=filled] 7 -> 10 ; -6 [label="6: DeclStmt \n n$6=_fun___objc_alloc_no_fail(sizeof(class UIView ):class UIView *) [line 17]\n *&attachmentContainerView:class UIView *=n$6 [line 17]\n REMOVE_TEMPS(n$6); [line 17]\n " shape="box"] +6 [label="6: DeclStmt \n n$6=_fun___objc_alloc_no_fail(sizeof(class UIView ):class UIView *) [line 21]\n *&attachmentContainerView:class UIView *=n$6 [line 21]\n REMOVE_TEMPS(n$6); [line 21]\n " shape="box"] 6 -> 5 ; -5 [label="5: DeclStmt \n n$3=*&attachmentContainerView:class UIView * [line 18]\n n$2=_fun_UIView_bounds(n$3:class UIView *) virtual [line 18]\n n$4=_fun_CGPathCreateWithRect(n$2:struct CGRect ,0:CGAffineTransform *) [line 18]\n *&shadowPath:struct CGPath *=n$4 [line 18]\n REMOVE_TEMPS(n$2,n$3,n$4); [line 18]\n " shape="box"] +5 [label="5: DeclStmt \n n$3=*&attachmentContainerView:class UIView * [line 22]\n n$2=_fun_UIView_bounds(n$3:class UIView *) virtual [line 22]\n n$4=_fun_CGPathCreateWithRect(n$2:struct CGRect ,0:CGAffineTransform *) [line 22]\n *&shadowPath:struct CGPath *=n$4 [line 22]\n REMOVE_TEMPS(n$2,n$3,n$4); [line 22]\n " shape="box"] 5 -> 4 ; -4 [label="4: Call _fun_CGPathRelease \n n$1=*&shadowPath:struct CGPath * [line 20]\n _fun_CGPathRelease(n$1:struct CGPath *) [line 20]\n REMOVE_TEMPS(n$1); [line 20]\n NULLIFY(&shadowPath,false); [line 20]\n " shape="box"] +4 [label="4: Call _fun_CGPathRelease \n n$1=*&shadowPath:struct CGPath * [line 24]\n _fun_CGPathRelease(n$1:struct CGPath *) [line 24]\n REMOVE_TEMPS(n$1); [line 24]\n NULLIFY(&shadowPath,false); [line 24]\n " shape="box"] 4 -> 3 ; -3 [label="3: Message Call: release \n n$0=*&attachmentContainerView:class UIView * [line 21]\n _fun___objc_release(n$0:class UIView *) [line 21]\n REMOVE_TEMPS(n$0); [line 21]\n NULLIFY(&attachmentContainerView,false); [line 21]\n APPLY_ABSTRACTION; [line 21]\n " shape="box"] +3 [label="3: Message Call: release \n n$0=*&attachmentContainerView:class UIView * [line 25]\n _fun___objc_release(n$0:class UIView *) [line 25]\n REMOVE_TEMPS(n$0); [line 25]\n NULLIFY(&attachmentContainerView,false); [line 25]\n APPLY_ABSTRACTION; [line 25]\n " shape="box"] 3 -> 2 ; 2 [label="2: Exit MemoryLeakExample_layoutSubviews \n " color=yellow style=filled] -1 [label="1: Start MemoryLeakExample_layoutSubviews\nFormals: self:class MemoryLeakExample *\nLocals: attachmentContainerView:class UIView * shadowPath:struct CGPath * \n DECLARE_LOCALS(&return,&attachmentContainerView,&shadowPath); [line 15]\n NULLIFY(&attachmentContainerView,false); [line 15]\n NULLIFY(&self,false); [line 15]\n NULLIFY(&shadowPath,false); [line 15]\n " color=yellow style=filled] +1 [label="1: Start MemoryLeakExample_layoutSubviews\nFormals: self:class MemoryLeakExample *\nLocals: attachmentContainerView:class UIView * shadowPath:struct CGPath * \n DECLARE_LOCALS(&return,&attachmentContainerView,&shadowPath); [line 19]\n NULLIFY(&attachmentContainerView,false); [line 19]\n NULLIFY(&self,false); [line 19]\n NULLIFY(&shadowPath,false); [line 19]\n " color=yellow style=filled] 1 -> 6 ; diff --git a/infer/tests/codetoanalyze/objc/errors/memory_leaks_benchmark/MemoryLeakExample.h b/infer/tests/codetoanalyze/objc/errors/memory_leaks_benchmark/MemoryLeakExample.h index 079ee86b8..966cfa7d5 100644 --- a/infer/tests/codetoanalyze/objc/errors/memory_leaks_benchmark/MemoryLeakExample.h +++ b/infer/tests/codetoanalyze/objc/errors/memory_leaks_benchmark/MemoryLeakExample.h @@ -1,6 +1,10 @@ /* - * Copyright (c) 2014 - Facebook. - * All rights reserved. +* Copyright (c) 2014 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ #import diff --git a/infer/tests/codetoanalyze/objc/errors/memory_leaks_benchmark/MemoryLeakExample.m b/infer/tests/codetoanalyze/objc/errors/memory_leaks_benchmark/MemoryLeakExample.m index 68aaeba3e..4f7bbd59b 100644 --- a/infer/tests/codetoanalyze/objc/errors/memory_leaks_benchmark/MemoryLeakExample.m +++ b/infer/tests/codetoanalyze/objc/errors/memory_leaks_benchmark/MemoryLeakExample.m @@ -1,6 +1,10 @@ /* - * Copyright (c) 2014 - Facebook. - * All rights reserved. +* Copyright (c) 2014 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ #import "MemoryLeakExample.h" diff --git a/infer/tests/codetoanalyze/objc/errors/memory_leaks_benchmark/NSMakeCollectableExample.m b/infer/tests/codetoanalyze/objc/errors/memory_leaks_benchmark/NSMakeCollectableExample.m index 5b523d211..2c1d4712e 100644 --- a/infer/tests/codetoanalyze/objc/errors/memory_leaks_benchmark/NSMakeCollectableExample.m +++ b/infer/tests/codetoanalyze/objc/errors/memory_leaks_benchmark/NSMakeCollectableExample.m @@ -1,3 +1,12 @@ +/* +* Copyright (c) 2015 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. +*/ + #import @interface E : NSObject diff --git a/infer/tests/codetoanalyze/objc/errors/memory_leaks_benchmark/NSStringInitWithBytesNoCopyExample.m b/infer/tests/codetoanalyze/objc/errors/memory_leaks_benchmark/NSStringInitWithBytesNoCopyExample.m index b42612935..b0fe9b650 100644 --- a/infer/tests/codetoanalyze/objc/errors/memory_leaks_benchmark/NSStringInitWithBytesNoCopyExample.m +++ b/infer/tests/codetoanalyze/objc/errors/memory_leaks_benchmark/NSStringInitWithBytesNoCopyExample.m @@ -1,6 +1,10 @@ /* - * Copyright (c) 2014 - Facebook. - * All rights reserved. +* Copyright (c) 2014 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ #import diff --git a/infer/tests/codetoanalyze/objc/errors/memory_leaks_benchmark/RetainReleaseExample.dot b/infer/tests/codetoanalyze/objc/errors/memory_leaks_benchmark/RetainReleaseExample.dot index cb3a58e18..3ca65cc22 100644 --- a/infer/tests/codetoanalyze/objc/errors/memory_leaks_benchmark/RetainReleaseExample.dot +++ b/infer/tests/codetoanalyze/objc/errors/memory_leaks_benchmark/RetainReleaseExample.dot @@ -1,20 +1,20 @@ digraph iCFG { -5 [label="5: DeclStmt \n n$5=_fun___objc_alloc_no_fail(sizeof(class A ):class A *) [line 17]\n n$3=_fun_A_init(n$5:class A *) virtual [line 17]\n *&a:class A *=n$3 [line 17]\n REMOVE_TEMPS(n$3,n$5); [line 17]\n " shape="box"] +5 [label="5: DeclStmt \n n$5=_fun___objc_alloc_no_fail(sizeof(class A ):class A *) [line 21]\n n$3=_fun_A_init(n$5:class A *) virtual [line 21]\n *&a:class A *=n$3 [line 21]\n REMOVE_TEMPS(n$3,n$5); [line 21]\n " shape="box"] 5 -> 4 ; -4 [label="4: Message Call: retain \n n$2=*&a:class A * [line 18]\n n$1=_fun___objc_retain(n$2:class A *) [line 18]\n REMOVE_TEMPS(n$1,n$2); [line 18]\n " shape="box"] +4 [label="4: Message Call: retain \n n$2=*&a:class A * [line 22]\n n$1=_fun___objc_retain(n$2:class A *) [line 22]\n REMOVE_TEMPS(n$1,n$2); [line 22]\n " shape="box"] 4 -> 3 ; -3 [label="3: Message Call: release \n n$0=*&a:class A * [line 19]\n _fun___objc_release(n$0:class A *) [line 19]\n REMOVE_TEMPS(n$0); [line 19]\n NULLIFY(&a,false); [line 19]\n APPLY_ABSTRACTION; [line 19]\n " shape="box"] +3 [label="3: Message Call: release \n n$0=*&a:class A * [line 23]\n _fun___objc_release(n$0:class A *) [line 23]\n REMOVE_TEMPS(n$0); [line 23]\n NULLIFY(&a,false); [line 23]\n APPLY_ABSTRACTION; [line 23]\n " shape="box"] 3 -> 2 ; 2 [label="2: Exit test \n " color=yellow style=filled] -1 [label="1: Start test\nFormals: \nLocals: a:class A * \n DECLARE_LOCALS(&return,&a); [line 16]\n NULLIFY(&a,false); [line 16]\n " color=yellow style=filled] +1 [label="1: Start test\nFormals: \nLocals: a:class A * \n DECLARE_LOCALS(&return,&a); [line 20]\n NULLIFY(&a,false); [line 20]\n " color=yellow style=filled] 1 -> 5 ; diff --git a/infer/tests/codetoanalyze/objc/errors/memory_leaks_benchmark/RetainReleaseExample.m b/infer/tests/codetoanalyze/objc/errors/memory_leaks_benchmark/RetainReleaseExample.m index ddf19fe18..8f0a13520 100644 --- a/infer/tests/codetoanalyze/objc/errors/memory_leaks_benchmark/RetainReleaseExample.m +++ b/infer/tests/codetoanalyze/objc/errors/memory_leaks_benchmark/RetainReleaseExample.m @@ -1,6 +1,10 @@ /* - * Copyright (c) 2014 - Facebook. - * All rights reserved. +* Copyright (c) 2014 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ #import diff --git a/infer/tests/codetoanalyze/objc/errors/memory_leaks_benchmark/RetainReleaseExample2.dot b/infer/tests/codetoanalyze/objc/errors/memory_leaks_benchmark/RetainReleaseExample2.dot index e4b6134d3..e62b376fb 100644 --- a/infer/tests/codetoanalyze/objc/errors/memory_leaks_benchmark/RetainReleaseExample2.dot +++ b/infer/tests/codetoanalyze/objc/errors/memory_leaks_benchmark/RetainReleaseExample2.dot @@ -1,123 +1,123 @@ digraph iCFG { -32 [label="32: Call _fun___objc_release \n n$23=*&a:class A * [line 66]\n n$24=_fun___objc_release(n$23:class A *) [line 66]\n REMOVE_TEMPS(n$23,n$24); [line 66]\n NULLIFY(&a,false); [line 66]\n APPLY_ABSTRACTION; [line 66]\n " shape="box"] +32 [label="32: Call _fun___objc_release \n n$23=*&a:class A * [line 70]\n n$24=_fun___objc_release(n$23:class A *) [line 70]\n REMOVE_TEMPS(n$23,n$24); [line 70]\n NULLIFY(&a,false); [line 70]\n APPLY_ABSTRACTION; [line 70]\n " shape="box"] 32 -> 29 ; -31 [label="31: Prune (false branch) \n n$22=*&a:class A * [line 65]\n PRUNE((n$22 == 0), false); [line 65]\n REMOVE_TEMPS(n$22); [line 65]\n APPLY_ABSTRACTION; [line 65]\n " shape="invhouse"] +31 [label="31: Prune (false branch) \n n$22=*&a:class A * [line 69]\n PRUNE((n$22 == 0), false); [line 69]\n REMOVE_TEMPS(n$22); [line 69]\n APPLY_ABSTRACTION; [line 69]\n " shape="invhouse"] 31 -> 29 ; -30 [label="30: Prune (true branch) \n n$22=*&a:class A * [line 65]\n PRUNE((n$22 != 0), true); [line 65]\n REMOVE_TEMPS(n$22); [line 65]\n " shape="invhouse"] +30 [label="30: Prune (true branch) \n n$22=*&a:class A * [line 69]\n PRUNE((n$22 != 0), true); [line 69]\n REMOVE_TEMPS(n$22); [line 69]\n " shape="invhouse"] 30 -> 32 ; -29 [label="29: + \n NULLIFY(&a,false); [line 65]\n " ] +29 [label="29: + \n NULLIFY(&a,false); [line 69]\n " ] 29 -> 28 ; 28 [label="28: Exit test7 \n " color=yellow style=filled] -27 [label="27: Start test7\nFormals: a:class A *\nLocals: \n DECLARE_LOCALS(&return); [line 64]\n " color=yellow style=filled] +27 [label="27: Start test7\nFormals: a:class A *\nLocals: \n DECLARE_LOCALS(&return); [line 68]\n " color=yellow style=filled] 27 -> 30 ; 27 -> 31 ; -26 [label="26: DeclStmt \n n$21=_fun___objc_alloc_no_fail(sizeof(class A ):class A *) [line 58]\n n$19=_fun_A_init(n$21:class A *) virtual [line 58]\n *&a:class A *=n$19 [line 58]\n REMOVE_TEMPS(n$19,n$21); [line 58]\n " shape="box"] +26 [label="26: DeclStmt \n n$21=_fun___objc_alloc_no_fail(sizeof(class A ):class A *) [line 62]\n n$19=_fun_A_init(n$21:class A *) virtual [line 62]\n *&a:class A *=n$19 [line 62]\n REMOVE_TEMPS(n$19,n$21); [line 62]\n " shape="box"] 26 -> 25 ; -25 [label="25: Message Call: retain \n n$18=*&a:class A * [line 59]\n n$17=_fun___objc_retain(n$18:class A *) [line 59]\n REMOVE_TEMPS(n$17,n$18); [line 59]\n " shape="box"] +25 [label="25: Message Call: retain \n n$18=*&a:class A * [line 63]\n n$17=_fun___objc_retain(n$18:class A *) [line 63]\n REMOVE_TEMPS(n$17,n$18); [line 63]\n " shape="box"] 25 -> 24 ; -24 [label="24: Message Call: release \n n$16=*&a:class A * [line 60]\n _fun___objc_release(n$16:class A *) [line 60]\n REMOVE_TEMPS(n$16); [line 60]\n NULLIFY(&a,false); [line 60]\n APPLY_ABSTRACTION; [line 60]\n " shape="box"] +24 [label="24: Message Call: release \n n$16=*&a:class A * [line 64]\n _fun___objc_release(n$16:class A *) [line 64]\n REMOVE_TEMPS(n$16); [line 64]\n NULLIFY(&a,false); [line 64]\n APPLY_ABSTRACTION; [line 64]\n " shape="box"] 24 -> 23 ; 23 [label="23: Exit test6 \n " color=yellow style=filled] -22 [label="22: Start test6\nFormals: \nLocals: a:class A * \n DECLARE_LOCALS(&return,&a); [line 57]\n NULLIFY(&a,false); [line 57]\n " color=yellow style=filled] +22 [label="22: Start test6\nFormals: \nLocals: a:class A * \n DECLARE_LOCALS(&return,&a); [line 61]\n NULLIFY(&a,false); [line 61]\n " color=yellow style=filled] 22 -> 26 ; -21 [label="21: DeclStmt \n n$15=_fun___objc_alloc_no_fail(sizeof(class A ):class A *) [line 51]\n n$13=_fun_A_init(n$15:class A *) virtual [line 51]\n *&a:class A *=n$13 [line 51]\n REMOVE_TEMPS(n$13,n$15); [line 51]\n " shape="box"] +21 [label="21: DeclStmt \n n$15=_fun___objc_alloc_no_fail(sizeof(class A ):class A *) [line 55]\n n$13=_fun_A_init(n$15:class A *) virtual [line 55]\n *&a:class A *=n$13 [line 55]\n REMOVE_TEMPS(n$13,n$15); [line 55]\n " shape="box"] 21 -> 20 ; -20 [label="20: Message Call: release \n n$12=*&a:class A * [line 52]\n _fun___objc_release(n$12:class A *) [line 52]\n REMOVE_TEMPS(n$12); [line 52]\n NULLIFY(&a,false); [line 52]\n APPLY_ABSTRACTION; [line 52]\n " shape="box"] +20 [label="20: Message Call: release \n n$12=*&a:class A * [line 56]\n _fun___objc_release(n$12:class A *) [line 56]\n REMOVE_TEMPS(n$12); [line 56]\n NULLIFY(&a,false); [line 56]\n APPLY_ABSTRACTION; [line 56]\n " shape="box"] 20 -> 19 ; 19 [label="19: Exit test5 \n " color=yellow style=filled] -18 [label="18: Start test5\nFormals: \nLocals: a:class A * \n DECLARE_LOCALS(&return,&a); [line 50]\n NULLIFY(&a,false); [line 50]\n " color=yellow style=filled] +18 [label="18: Start test5\nFormals: \nLocals: a:class A * \n DECLARE_LOCALS(&return,&a); [line 54]\n NULLIFY(&a,false); [line 54]\n " color=yellow style=filled] 18 -> 21 ; -17 [label="17: DeclStmt \n n$11=_fun_test() [line 45]\n *&b:class A *=n$11 [line 45]\n REMOVE_TEMPS(n$11); [line 45]\n " shape="box"] +17 [label="17: DeclStmt \n n$11=_fun_test() [line 49]\n *&b:class A *=n$11 [line 49]\n REMOVE_TEMPS(n$11); [line 49]\n " shape="box"] 17 -> 16 ; -16 [label="16: Message Call: release \n n$10=*&b:class A * [line 46]\n _fun___objc_release(n$10:class A *) [line 46]\n REMOVE_TEMPS(n$10); [line 46]\n NULLIFY(&b,false); [line 46]\n APPLY_ABSTRACTION; [line 46]\n " shape="box"] +16 [label="16: Message Call: release \n n$10=*&b:class A * [line 50]\n _fun___objc_release(n$10:class A *) [line 50]\n REMOVE_TEMPS(n$10); [line 50]\n NULLIFY(&b,false); [line 50]\n APPLY_ABSTRACTION; [line 50]\n " shape="box"] 16 -> 15 ; 15 [label="15: Exit test4 \n " color=yellow style=filled] -14 [label="14: Start test4\nFormals: \nLocals: b:class A * \n DECLARE_LOCALS(&return,&b); [line 43]\n NULLIFY(&b,false); [line 43]\n " color=yellow style=filled] +14 [label="14: Start test4\nFormals: \nLocals: b:class A * \n DECLARE_LOCALS(&return,&b); [line 47]\n NULLIFY(&b,false); [line 47]\n " color=yellow style=filled] 14 -> 17 ; -13 [label="13: DeclStmt \n n$9=_fun_test() [line 39]\n *&b:class A *=n$9 [line 39]\n REMOVE_TEMPS(n$9); [line 39]\n NULLIFY(&b,false); [line 39]\n APPLY_ABSTRACTION; [line 39]\n " shape="box"] +13 [label="13: DeclStmt \n n$9=_fun_test() [line 43]\n *&b:class A *=n$9 [line 43]\n REMOVE_TEMPS(n$9); [line 43]\n NULLIFY(&b,false); [line 43]\n APPLY_ABSTRACTION; [line 43]\n " shape="box"] 13 -> 12 ; 12 [label="12: Exit test3 \n " color=yellow style=filled] -11 [label="11: Start test3\nFormals: \nLocals: b:class A * \n DECLARE_LOCALS(&return,&b); [line 37]\n NULLIFY(&b,false); [line 37]\n " color=yellow style=filled] +11 [label="11: Start test3\nFormals: \nLocals: b:class A * \n DECLARE_LOCALS(&return,&b); [line 41]\n NULLIFY(&b,false); [line 41]\n " color=yellow style=filled] 11 -> 13 ; -10 [label="10: DeclStmt \n n$8=_fun_test() [line 32]\n *&b:class A *=n$8 [line 32]\n REMOVE_TEMPS(n$8); [line 32]\n " shape="box"] +10 [label="10: DeclStmt \n n$8=_fun_test() [line 36]\n *&b:class A *=n$8 [line 36]\n REMOVE_TEMPS(n$8); [line 36]\n " shape="box"] 10 -> 9 ; -9 [label="9: BinaryOperatorStmt: Assign \n n$7=*&b:class A * [line 33]\n *&#GB$g:class A *=n$7 [line 33]\n REMOVE_TEMPS(n$7); [line 33]\n NULLIFY(&b,false); [line 33]\n APPLY_ABSTRACTION; [line 33]\n " shape="box"] +9 [label="9: BinaryOperatorStmt: Assign \n n$7=*&b:class A * [line 37]\n *&#GB$g:class A *=n$7 [line 37]\n REMOVE_TEMPS(n$7); [line 37]\n NULLIFY(&b,false); [line 37]\n APPLY_ABSTRACTION; [line 37]\n " shape="box"] 9 -> 8 ; 8 [label="8: Exit test2 \n " color=yellow style=filled] -7 [label="7: Start test2\nFormals: \nLocals: b:class A * \n DECLARE_LOCALS(&return,&b); [line 30]\n NULLIFY(&b,false); [line 30]\n " color=yellow style=filled] +7 [label="7: Start test2\nFormals: \nLocals: b:class A * \n DECLARE_LOCALS(&return,&b); [line 34]\n NULLIFY(&b,false); [line 34]\n " color=yellow style=filled] 7 -> 10 ; -6 [label="6: DeclStmt \n n$6=_fun___objc_alloc_no_fail(sizeof(class A ):class A *) [line 22]\n n$4=_fun_A_init(n$6:class A *) virtual [line 22]\n *&a:class A *=n$4 [line 22]\n REMOVE_TEMPS(n$4,n$6); [line 22]\n " shape="box"] +6 [label="6: DeclStmt \n n$6=_fun___objc_alloc_no_fail(sizeof(class A ):class A *) [line 26]\n n$4=_fun_A_init(n$6:class A *) virtual [line 26]\n *&a:class A *=n$4 [line 26]\n REMOVE_TEMPS(n$4,n$6); [line 26]\n " shape="box"] 6 -> 5 ; -5 [label="5: Message Call: retain \n n$3=*&a:class A * [line 23]\n n$2=_fun___objc_retain(n$3:class A *) [line 23]\n REMOVE_TEMPS(n$2,n$3); [line 23]\n " shape="box"] +5 [label="5: Message Call: retain \n n$3=*&a:class A * [line 27]\n n$2=_fun___objc_retain(n$3:class A *) [line 27]\n REMOVE_TEMPS(n$2,n$3); [line 27]\n " shape="box"] 5 -> 4 ; -4 [label="4: Message Call: release \n n$1=*&a:class A * [line 24]\n _fun___objc_release(n$1:class A *) [line 24]\n REMOVE_TEMPS(n$1); [line 24]\n " shape="box"] +4 [label="4: Message Call: release \n n$1=*&a:class A * [line 28]\n _fun___objc_release(n$1:class A *) [line 28]\n REMOVE_TEMPS(n$1); [line 28]\n " shape="box"] 4 -> 3 ; -3 [label="3: Return Stmt \n n$0=*&a:class A * [line 26]\n *&return:class A *=n$0 [line 26]\n REMOVE_TEMPS(n$0); [line 26]\n NULLIFY(&a,false); [line 26]\n APPLY_ABSTRACTION; [line 26]\n " shape="box"] +3 [label="3: Return Stmt \n n$0=*&a:class A * [line 30]\n *&return:class A *=n$0 [line 30]\n REMOVE_TEMPS(n$0); [line 30]\n NULLIFY(&a,false); [line 30]\n APPLY_ABSTRACTION; [line 30]\n " shape="box"] 3 -> 2 ; 2 [label="2: Exit test \n " color=yellow style=filled] -1 [label="1: Start test\nFormals: \nLocals: a:class A * \n DECLARE_LOCALS(&return,&a); [line 21]\n NULLIFY(&a,false); [line 21]\n " color=yellow style=filled] +1 [label="1: Start test\nFormals: \nLocals: a:class A * \n DECLARE_LOCALS(&return,&a); [line 25]\n NULLIFY(&a,false); [line 25]\n " color=yellow style=filled] 1 -> 6 ; diff --git a/infer/tests/codetoanalyze/objc/errors/memory_leaks_benchmark/RetainReleaseExample2.m b/infer/tests/codetoanalyze/objc/errors/memory_leaks_benchmark/RetainReleaseExample2.m index d9f98203e..5acc167f9 100644 --- a/infer/tests/codetoanalyze/objc/errors/memory_leaks_benchmark/RetainReleaseExample2.m +++ b/infer/tests/codetoanalyze/objc/errors/memory_leaks_benchmark/RetainReleaseExample2.m @@ -1,6 +1,10 @@ /* - * Copyright (c) 2014 - Facebook. - * All rights reserved. +* Copyright (c) 2014 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ #import diff --git a/infer/tests/codetoanalyze/objc/errors/memory_leaks_benchmark/RetainReleaseExampleBucketing.m b/infer/tests/codetoanalyze/objc/errors/memory_leaks_benchmark/RetainReleaseExampleBucketing.m index 358453ecc..d8f7d7c33 100644 --- a/infer/tests/codetoanalyze/objc/errors/memory_leaks_benchmark/RetainReleaseExampleBucketing.m +++ b/infer/tests/codetoanalyze/objc/errors/memory_leaks_benchmark/RetainReleaseExampleBucketing.m @@ -1,6 +1,10 @@ /* - * Copyright (c) 2014 - Facebook. - * All rights reserved. +* Copyright (c) 2014 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ #import diff --git a/infer/tests/codetoanalyze/objc/errors/memory_leaks_benchmark/TollBridgeExample.dot b/infer/tests/codetoanalyze/objc/errors/memory_leaks_benchmark/TollBridgeExample.dot index ff91ca31f..8c64f78f5 100644 --- a/infer/tests/codetoanalyze/objc/errors/memory_leaks_benchmark/TollBridgeExample.dot +++ b/infer/tests/codetoanalyze/objc/errors/memory_leaks_benchmark/TollBridgeExample.dot @@ -1,72 +1,72 @@ digraph iCFG { -19 [label="19: Return Stmt \n n$10=_fun___builtin___CFStringMakeConstantString(\"Icon\":char *) [line 39]\n n$11=_fun_CTFontCreateWithName(n$10:struct __CFString *,17.000000:double ,0:CGAffineTransform *) [line 39]\n n$12=_fun___objc_cast(n$11:void *,sizeof(void ):void ) [line 39]\n *&return:struct __CTFont *=n$12 [line 39]\n REMOVE_TEMPS(n$10,n$11,n$12); [line 39]\n APPLY_ABSTRACTION; [line 39]\n " shape="box"] +19 [label="19: Return Stmt \n n$10=_fun___builtin___CFStringMakeConstantString(\"Icon\":char *) [line 43]\n n$11=_fun_CTFontCreateWithName(n$10:struct __CFString *,17.000000:double ,0:CGAffineTransform *) [line 43]\n n$12=_fun___objc_cast(n$11:void *,sizeof(void ):void ) [line 43]\n *&return:struct __CTFont *=n$12 [line 43]\n REMOVE_TEMPS(n$10,n$11,n$12); [line 43]\n APPLY_ABSTRACTION; [line 43]\n " shape="box"] 19 -> 18 ; 18 [label="18: Exit cfautorelease_test \n " color=yellow style=filled] -17 [label="17: Start cfautorelease_test\nFormals: \nLocals: \n DECLARE_LOCALS(&return); [line 38]\n " color=yellow style=filled] +17 [label="17: Start cfautorelease_test\nFormals: \nLocals: \n DECLARE_LOCALS(&return); [line 42]\n " color=yellow style=filled] 17 -> 19 ; -16 [label="16: DeclStmt \n n$9=_fun_CFHTTPMessageCopyAllHeaderFields(0:struct __CFHTTPMessage *) [line 34]\n *&ref:struct __CFDictionary *=n$9 [line 34]\n REMOVE_TEMPS(n$9); [line 34]\n " shape="box"] +16 [label="16: DeclStmt \n n$9=_fun_CFHTTPMessageCopyAllHeaderFields(0:struct __CFHTTPMessage *) [line 38]\n *&ref:struct __CFDictionary *=n$9 [line 38]\n REMOVE_TEMPS(n$9); [line 38]\n " shape="box"] 16 -> 15 ; -15 [label="15: Call _fun_CFBridgingRelease \n n$7=*&ref:struct __CFDictionary * [line 35]\n n$8=_fun___objc_cast(n$7:void *,sizeof(struct objc_object ):void ) [line 35]\n REMOVE_TEMPS(n$7,n$8); [line 35]\n NULLIFY(&ref,false); [line 35]\n APPLY_ABSTRACTION; [line 35]\n " shape="box"] +15 [label="15: Call _fun_CFBridgingRelease \n n$7=*&ref:struct __CFDictionary * [line 39]\n n$8=_fun___objc_cast(n$7:void *,sizeof(struct objc_object ):void ) [line 39]\n REMOVE_TEMPS(n$7,n$8); [line 39]\n NULLIFY(&ref,false); [line 39]\n APPLY_ABSTRACTION; [line 39]\n " shape="box"] 15 -> 14 ; 14 [label="14: Exit TollBridgeExample__readHTTPHeader \n " color=yellow style=filled] -13 [label="13: Start TollBridgeExample__readHTTPHeader\nFormals: self:class TollBridgeExample *\nLocals: ref:struct __CFDictionary * \n DECLARE_LOCALS(&return,&ref); [line 32]\n NULLIFY(&ref,false); [line 32]\n NULLIFY(&self,false); [line 32]\n " color=yellow style=filled] +13 [label="13: Start TollBridgeExample__readHTTPHeader\nFormals: self:class TollBridgeExample *\nLocals: ref:struct __CFDictionary * \n DECLARE_LOCALS(&return,&ref); [line 36]\n NULLIFY(&ref,false); [line 36]\n NULLIFY(&self,false); [line 36]\n " color=yellow style=filled] 13 -> 16 ; -12 [label="12: DeclStmt \n n$6=_fun___objc_alloc_no_fail(sizeof(class NSLocale ):class NSLocale *) [line 28]\n *&observer:struct objc_object *=n$6 [line 28]\n REMOVE_TEMPS(n$6); [line 28]\n " shape="box"] +12 [label="12: DeclStmt \n n$6=_fun___objc_alloc_no_fail(sizeof(class NSLocale ):class NSLocale *) [line 32]\n *&observer:struct objc_object *=n$6 [line 32]\n REMOVE_TEMPS(n$6); [line 32]\n " shape="box"] 12 -> 11 ; -11 [label="11: DeclStmt \n n$4=*&observer:struct objc_object * [line 29]\n *&a:struct __CFLocale *=n$4 [line 29]\n REMOVE_TEMPS(n$4); [line 29]\n NULLIFY(&a,false); [line 29]\n NULLIFY(&observer,false); [line 29]\n APPLY_ABSTRACTION; [line 29]\n " shape="box"] +11 [label="11: DeclStmt \n n$4=*&observer:struct objc_object * [line 33]\n *&a:struct __CFLocale *=n$4 [line 33]\n REMOVE_TEMPS(n$4); [line 33]\n NULLIFY(&a,false); [line 33]\n NULLIFY(&observer,false); [line 33]\n APPLY_ABSTRACTION; [line 33]\n " shape="box"] 11 -> 10 ; 10 [label="10: Exit TollBridgeExample_brideRetained \n " color=yellow style=filled] -9 [label="9: Start TollBridgeExample_brideRetained\nFormals: self:class TollBridgeExample *\nLocals: observer:struct objc_object * a:struct __CFLocale * \n DECLARE_LOCALS(&return,&observer,&a); [line 27]\n NULLIFY(&a,false); [line 27]\n NULLIFY(&observer,false); [line 27]\n NULLIFY(&self,false); [line 27]\n " color=yellow style=filled] +9 [label="9: Start TollBridgeExample_brideRetained\nFormals: self:class TollBridgeExample *\nLocals: observer:struct objc_object * a:struct __CFLocale * \n DECLARE_LOCALS(&return,&observer,&a); [line 31]\n NULLIFY(&a,false); [line 31]\n NULLIFY(&observer,false); [line 31]\n NULLIFY(&self,false); [line 31]\n " color=yellow style=filled] 9 -> 12 ; -8 [label="8: DeclStmt \n n$3=_fun_CFLocaleCreate(0:struct __CFAllocator *,0:struct __CFString *) [line 22]\n *&nameRef:struct __CFLocale *=n$3 [line 22]\n REMOVE_TEMPS(n$3); [line 22]\n " shape="box"] +8 [label="8: DeclStmt \n n$3=_fun_CFLocaleCreate(0:struct __CFAllocator *,0:struct __CFString *) [line 26]\n *&nameRef:struct __CFLocale *=n$3 [line 26]\n REMOVE_TEMPS(n$3); [line 26]\n " shape="box"] 8 -> 7 ; -7 [label="7: DeclStmt \n n$2=*&nameRef:struct __CFLocale * [line 23]\n *&a:class NSLocale *=(struct __CFLocale *)n$2 [line 23]\n REMOVE_TEMPS(n$2); [line 23]\n NULLIFY(&a,false); [line 23]\n NULLIFY(&nameRef,false); [line 23]\n APPLY_ABSTRACTION; [line 23]\n " shape="box"] +7 [label="7: DeclStmt \n n$2=*&nameRef:struct __CFLocale * [line 27]\n *&a:class NSLocale *=(struct __CFLocale *)n$2 [line 27]\n REMOVE_TEMPS(n$2); [line 27]\n NULLIFY(&a,false); [line 27]\n NULLIFY(&nameRef,false); [line 27]\n APPLY_ABSTRACTION; [line 27]\n " shape="box"] 7 -> 6 ; 6 [label="6: Exit TollBridgeExample_bridge \n " color=yellow style=filled] -5 [label="5: Start TollBridgeExample_bridge\nFormals: self:class TollBridgeExample *\nLocals: nameRef:struct __CFLocale * a:class NSLocale * \n DECLARE_LOCALS(&return,&nameRef,&a); [line 21]\n NULLIFY(&a,false); [line 21]\n NULLIFY(&nameRef,false); [line 21]\n NULLIFY(&self,false); [line 21]\n " color=yellow style=filled] +5 [label="5: Start TollBridgeExample_bridge\nFormals: self:class TollBridgeExample *\nLocals: nameRef:struct __CFLocale * a:class NSLocale * \n DECLARE_LOCALS(&return,&nameRef,&a); [line 25]\n NULLIFY(&a,false); [line 25]\n NULLIFY(&nameRef,false); [line 25]\n NULLIFY(&self,false); [line 25]\n " color=yellow style=filled] 5 -> 8 ; -4 [label="4: DeclStmt \n n$1=_fun_CFLocaleCreate(0:struct __CFAllocator *,0:struct __CFString *) [line 17]\n *&nameRef:struct __CFLocale *=n$1 [line 17]\n REMOVE_TEMPS(n$1); [line 17]\n " shape="box"] +4 [label="4: DeclStmt \n n$1=_fun_CFLocaleCreate(0:struct __CFAllocator *,0:struct __CFString *) [line 21]\n *&nameRef:struct __CFLocale *=n$1 [line 21]\n REMOVE_TEMPS(n$1); [line 21]\n " shape="box"] 4 -> 3 ; -3 [label="3: DeclStmt \n n$0=*&nameRef:struct __CFLocale * [line 18]\n *&a:class NSLocale *=(struct __CFLocale *)n$0 [line 18]\n REMOVE_TEMPS(n$0); [line 18]\n NULLIFY(&a,false); [line 18]\n NULLIFY(&nameRef,false); [line 18]\n APPLY_ABSTRACTION; [line 18]\n " shape="box"] +3 [label="3: DeclStmt \n n$0=*&nameRef:struct __CFLocale * [line 22]\n *&a:class NSLocale *=(struct __CFLocale *)n$0 [line 22]\n REMOVE_TEMPS(n$0); [line 22]\n NULLIFY(&a,false); [line 22]\n NULLIFY(&nameRef,false); [line 22]\n APPLY_ABSTRACTION; [line 22]\n " shape="box"] 3 -> 2 ; 2 [label="2: Exit TollBridgeExample_bridgeTransfer \n " color=yellow style=filled] -1 [label="1: Start TollBridgeExample_bridgeTransfer\nFormals: self:class TollBridgeExample *\nLocals: nameRef:struct __CFLocale * a:class NSLocale * \n DECLARE_LOCALS(&return,&nameRef,&a); [line 16]\n NULLIFY(&a,false); [line 16]\n NULLIFY(&nameRef,false); [line 16]\n NULLIFY(&self,false); [line 16]\n " color=yellow style=filled] +1 [label="1: Start TollBridgeExample_bridgeTransfer\nFormals: self:class TollBridgeExample *\nLocals: nameRef:struct __CFLocale * a:class NSLocale * \n DECLARE_LOCALS(&return,&nameRef,&a); [line 20]\n NULLIFY(&a,false); [line 20]\n NULLIFY(&nameRef,false); [line 20]\n NULLIFY(&self,false); [line 20]\n " color=yellow style=filled] 1 -> 4 ; diff --git a/infer/tests/codetoanalyze/objc/errors/memory_leaks_benchmark/TollBridgeExample.m b/infer/tests/codetoanalyze/objc/errors/memory_leaks_benchmark/TollBridgeExample.m index 838f5091c..a99006375 100644 --- a/infer/tests/codetoanalyze/objc/errors/memory_leaks_benchmark/TollBridgeExample.m +++ b/infer/tests/codetoanalyze/objc/errors/memory_leaks_benchmark/TollBridgeExample.m @@ -1,6 +1,10 @@ /* - * Copyright (c) 2015- Facebook. - * All rights reserved. +* Copyright (c) 2015 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ #import diff --git a/infer/tests/codetoanalyze/objc/errors/memory_leaks_benchmark/arc_methods.dot b/infer/tests/codetoanalyze/objc/errors/memory_leaks_benchmark/arc_methods.dot index 99b8350fa..d5ecbc215 100644 --- a/infer/tests/codetoanalyze/objc/errors/memory_leaks_benchmark/arc_methods.dot +++ b/infer/tests/codetoanalyze/objc/errors/memory_leaks_benchmark/arc_methods.dot @@ -1,58 +1,58 @@ digraph iCFG { -15 [label="15: DeclStmt \n n$12=_fun_A_newA() [line 38]\n *&a1:class A *=n$12 [line 38]\n REMOVE_TEMPS(n$12); [line 38]\n " shape="box"] +15 [label="15: DeclStmt \n n$12=_fun_A_newA() [line 42]\n *&a1:class A *=n$12 [line 42]\n REMOVE_TEMPS(n$12); [line 42]\n " shape="box"] 15 -> 14 ; -14 [label="14: DeclStmt \n n$11=*&a1:class A * [line 39]\n _fun___objc_retain(n$11:class A *) [line 39]\n *&aa:class A *=n$11 [line 39]\n REMOVE_TEMPS(n$11); [line 39]\n NULLIFY(&a1,false); [line 39]\n NULLIFY(&aa,false); [line 39]\n " shape="box"] +14 [label="14: DeclStmt \n n$11=*&a1:class A * [line 43]\n _fun___objc_retain(n$11:class A *) [line 43]\n *&aa:class A *=n$11 [line 43]\n REMOVE_TEMPS(n$11); [line 43]\n NULLIFY(&a1,false); [line 43]\n NULLIFY(&aa,false); [line 43]\n " shape="box"] 14 -> 13 ; -13 [label="13: DeclStmt \n n$10=_fun_A_someA() [line 40]\n _fun___objc_retain(n$10:class A *) [line 40]\n *&a2:class A *=n$10 [line 40]\n REMOVE_TEMPS(n$10); [line 40]\n " shape="box"] +13 [label="13: DeclStmt \n n$10=_fun_A_someA() [line 44]\n _fun___objc_retain(n$10:class A *) [line 44]\n *&a2:class A *=n$10 [line 44]\n REMOVE_TEMPS(n$10); [line 44]\n " shape="box"] 13 -> 12 ; -12 [label="12: DeclStmt \n n$9=*&a2:class A * [line 41]\n _fun___objc_retain(n$9:class A *) [line 41]\n *&ab:class A *=n$9 [line 41]\n REMOVE_TEMPS(n$9); [line 41]\n NULLIFY(&a2,false); [line 41]\n NULLIFY(&ab,false); [line 41]\n " shape="box"] +12 [label="12: DeclStmt \n n$9=*&a2:class A * [line 45]\n _fun___objc_retain(n$9:class A *) [line 45]\n *&ab:class A *=n$9 [line 45]\n REMOVE_TEMPS(n$9); [line 45]\n NULLIFY(&a2,false); [line 45]\n NULLIFY(&ab,false); [line 45]\n " shape="box"] 12 -> 11 ; -11 [label="11: Return Stmt \n *&return:int =0 [line 42]\n APPLY_ABSTRACTION; [line 42]\n " shape="box"] +11 [label="11: Return Stmt \n *&return:int =0 [line 46]\n APPLY_ABSTRACTION; [line 46]\n " shape="box"] 11 -> 10 ; 10 [label="10: Exit main \n " color=yellow style=filled] -9 [label="9: Start main\nFormals: \nLocals: a1:class A * aa:class A * a2:class A * ab:class A * \n DECLARE_LOCALS(&return,&a1,&aa,&a2,&ab); [line 31]\n NULLIFY(&a1,false); [line 31]\n NULLIFY(&a2,false); [line 31]\n NULLIFY(&aa,false); [line 31]\n NULLIFY(&ab,false); [line 31]\n " color=yellow style=filled] +9 [label="9: Start main\nFormals: \nLocals: a1:class A * aa:class A * a2:class A * ab:class A * \n DECLARE_LOCALS(&return,&a1,&aa,&a2,&ab); [line 35]\n NULLIFY(&a1,false); [line 35]\n NULLIFY(&a2,false); [line 35]\n NULLIFY(&aa,false); [line 35]\n NULLIFY(&ab,false); [line 35]\n " color=yellow style=filled] 9 -> 15 ; -8 [label="8: DeclStmt \n n$8=_fun___objc_alloc_no_fail(sizeof(class A ):class A *) [line 24]\n n$6=_fun_A_init(n$8:class A *) virtual [line 24]\n *&a:class A *=n$6 [line 24]\n REMOVE_TEMPS(n$6,n$8); [line 24]\n " shape="box"] +8 [label="8: DeclStmt \n n$8=_fun___objc_alloc_no_fail(sizeof(class A ):class A *) [line 28]\n n$6=_fun_A_init(n$8:class A *) virtual [line 28]\n *&a:class A *=n$6 [line 28]\n REMOVE_TEMPS(n$6,n$8); [line 28]\n " shape="box"] 8 -> 7 ; -7 [label="7: Return Stmt \n n$4=*&a:class A * [line 26]\n *&return:class A *=n$4 [line 26]\n n$5=_fun___set_autorelease_attribute(n$4:class A *) [line 26]\n REMOVE_TEMPS(n$4,n$5); [line 26]\n NULLIFY(&a,false); [line 26]\n APPLY_ABSTRACTION; [line 26]\n " shape="box"] +7 [label="7: Return Stmt \n n$4=*&a:class A * [line 30]\n *&return:class A *=n$4 [line 30]\n n$5=_fun___set_autorelease_attribute(n$4:class A *) [line 30]\n REMOVE_TEMPS(n$4,n$5); [line 30]\n NULLIFY(&a,false); [line 30]\n APPLY_ABSTRACTION; [line 30]\n " shape="box"] 7 -> 6 ; 6 [label="6: Exit A_someA \n " color=yellow style=filled] -5 [label="5: Start A_someA\nFormals: \nLocals: a:class A * \n DECLARE_LOCALS(&return,&a); [line 23]\n NULLIFY(&a,false); [line 23]\n " color=yellow style=filled] +5 [label="5: Start A_someA\nFormals: \nLocals: a:class A * \n DECLARE_LOCALS(&return,&a); [line 27]\n NULLIFY(&a,false); [line 27]\n " color=yellow style=filled] 5 -> 8 ; -4 [label="4: DeclStmt \n n$3=_fun___objc_alloc_no_fail(sizeof(class A ):class A *) [line 19]\n n$1=_fun_A_init(n$3:class A *) virtual [line 19]\n *&a:class A *=n$1 [line 19]\n REMOVE_TEMPS(n$1,n$3); [line 19]\n " shape="box"] +4 [label="4: DeclStmt \n n$3=_fun___objc_alloc_no_fail(sizeof(class A ):class A *) [line 23]\n n$1=_fun_A_init(n$3:class A *) virtual [line 23]\n *&a:class A *=n$1 [line 23]\n REMOVE_TEMPS(n$1,n$3); [line 23]\n " shape="box"] 4 -> 3 ; -3 [label="3: Return Stmt \n n$0=*&a:class A * [line 20]\n *&return:class A *=n$0 [line 20]\n REMOVE_TEMPS(n$0); [line 20]\n NULLIFY(&a,false); [line 20]\n APPLY_ABSTRACTION; [line 20]\n " shape="box"] +3 [label="3: Return Stmt \n n$0=*&a:class A * [line 24]\n *&return:class A *=n$0 [line 24]\n REMOVE_TEMPS(n$0); [line 24]\n NULLIFY(&a,false); [line 24]\n APPLY_ABSTRACTION; [line 24]\n " shape="box"] 3 -> 2 ; 2 [label="2: Exit A_newA \n " color=yellow style=filled] -1 [label="1: Start A_newA\nFormals: \nLocals: a:class A * \n DECLARE_LOCALS(&return,&a); [line 18]\n NULLIFY(&a,false); [line 18]\n " color=yellow style=filled] +1 [label="1: Start A_newA\nFormals: \nLocals: a:class A * \n DECLARE_LOCALS(&return,&a); [line 22]\n NULLIFY(&a,false); [line 22]\n " color=yellow style=filled] 1 -> 4 ; diff --git a/infer/tests/codetoanalyze/objc/errors/memory_leaks_benchmark/arc_methods.m b/infer/tests/codetoanalyze/objc/errors/memory_leaks_benchmark/arc_methods.m index 6d126c8c7..a3efb0880 100644 --- a/infer/tests/codetoanalyze/objc/errors/memory_leaks_benchmark/arc_methods.m +++ b/infer/tests/codetoanalyze/objc/errors/memory_leaks_benchmark/arc_methods.m @@ -1,6 +1,10 @@ /* - * Copyright (c) 2013 - Facebook. - * All rights reserved. +* Copyright (c) 2013 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ #import diff --git a/infer/tests/codetoanalyze/objc/errors/memory_leaks_benchmark/retain_cycle.m b/infer/tests/codetoanalyze/objc/errors/memory_leaks_benchmark/retain_cycle.m index cf366ee84..82c881a44 100644 --- a/infer/tests/codetoanalyze/objc/errors/memory_leaks_benchmark/retain_cycle.m +++ b/infer/tests/codetoanalyze/objc/errors/memory_leaks_benchmark/retain_cycle.m @@ -1,6 +1,10 @@ /* - * Copyright (c) 2013- Facebook. - * All rights reserved. +* Copyright (c) 2013 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ #import @@ -93,4 +97,4 @@ int assigncycle() { b_obj.a=a_obj; //Not a retain cycle return 0; -} \ No newline at end of file +} diff --git a/infer/tests/codetoanalyze/objc/errors/memory_leaks_benchmark/retain_cycle2.m b/infer/tests/codetoanalyze/objc/errors/memory_leaks_benchmark/retain_cycle2.m index cf57f1b04..81f26cecf 100644 --- a/infer/tests/codetoanalyze/objc/errors/memory_leaks_benchmark/retain_cycle2.m +++ b/infer/tests/codetoanalyze/objc/errors/memory_leaks_benchmark/retain_cycle2.m @@ -1,3 +1,12 @@ +/* +* Copyright (c) 2015 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. +*/ + #import @class Child; diff --git a/infer/tests/codetoanalyze/objc/errors/npe/Fraction.m b/infer/tests/codetoanalyze/objc/errors/npe/Fraction.m index 7da0ece49..41d721fc5 100644 --- a/infer/tests/codetoanalyze/objc/errors/npe/Fraction.m +++ b/infer/tests/codetoanalyze/objc/errors/npe/Fraction.m @@ -1,6 +1,10 @@ /* - * Copyright (c) 2014 - Facebook. - * All rights reserved. +* Copyright (c) 2014 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ #import diff --git a/infer/tests/codetoanalyze/objc/errors/npe/NPD_core_foundation.h b/infer/tests/codetoanalyze/objc/errors/npe/NPD_core_foundation.h index f8b6c175c..a4949026c 100644 --- a/infer/tests/codetoanalyze/objc/errors/npe/NPD_core_foundation.h +++ b/infer/tests/codetoanalyze/objc/errors/npe/NPD_core_foundation.h @@ -1,6 +1,10 @@ /* - * Copyright (c) 2014 - Facebook. - * All rights reserved. +* Copyright (c) 2014 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ #import diff --git a/infer/tests/codetoanalyze/objc/errors/npe/NPD_core_foundation.m b/infer/tests/codetoanalyze/objc/errors/npe/NPD_core_foundation.m index 7046c9f38..2c43f1f12 100644 --- a/infer/tests/codetoanalyze/objc/errors/npe/NPD_core_foundation.m +++ b/infer/tests/codetoanalyze/objc/errors/npe/NPD_core_foundation.m @@ -1,6 +1,10 @@ /* - * Copyright (c) 2014 - Facebook. - * All rights reserved. +* Copyright (c) 2014 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ #import "NPD_core_foundation.h" diff --git a/infer/tests/codetoanalyze/objc/errors/npe/Nonnull_attribute_example.dot b/infer/tests/codetoanalyze/objc/errors/npe/Nonnull_attribute_example.dot index 05f1b8b1a..27c8fab6e 100644 --- a/infer/tests/codetoanalyze/objc/errors/npe/Nonnull_attribute_example.dot +++ b/infer/tests/codetoanalyze/objc/errors/npe/Nonnull_attribute_example.dot @@ -1,16 +1,16 @@ digraph iCFG { -20 [label="20: Call _fun___infer_assume \n n$20=*&callback:_fn_ (*) [line 42]\n n$21=_fun___infer_assume((n$20 != 0):_fn_ (*)) [line 42]\n REMOVE_TEMPS(n$20,n$21); [line 42]\n " shape="box"] +20 [label="20: Call _fun___infer_assume \n n$20=*&callback:_fn_ (*) [line 46]\n n$21=_fun___infer_assume((n$20 != 0):_fn_ (*)) [line 46]\n REMOVE_TEMPS(n$20,n$21); [line 46]\n " shape="box"] 20 -> 19 ; -19 [label="19: Call n$19 \n n$19=*&callback:_fn_ (*) [line 43]\n n$19(0:class NSError *,0:id *) [line 43]\n REMOVE_TEMPS(n$19); [line 43]\n NULLIFY(&callback,false); [line 43]\n APPLY_ABSTRACTION; [line 43]\n " shape="box"] +19 [label="19: Call n$19 \n n$19=*&callback:_fn_ (*) [line 47]\n n$19(0:class NSError *,0:id *) [line 47]\n REMOVE_TEMPS(n$19); [line 47]\n NULLIFY(&callback,false); [line 47]\n APPLY_ABSTRACTION; [line 47]\n " shape="box"] 19 -> 18 ; 18 [label="18: Exit test \n " color=yellow style=filled] -17 [label="17: Start test\nFormals: callback:_fn_ (*)\nLocals: \n DECLARE_LOCALS(&return); [line 42]\n " color=yellow style=filled] +17 [label="17: Start test\nFormals: callback:_fn_ (*)\nLocals: \n DECLARE_LOCALS(&return); [line 46]\n " color=yellow style=filled] 17 -> 20 ; @@ -18,7 +18,7 @@ digraph iCFG { 16 -> 15 ; -15 [label="15: BinaryOperatorStmt: Assign \n n$14=*&self:class C * [line 27]\n n$16=*&name:class NSString * [line -1]\n n$15=_fun_NSString_copy(n$16:class NSString *) virtual [line -1]\n *n$14._name:class NSString *=n$15 [line -1]\n REMOVE_TEMPS(n$14,n$15,n$16); [line -1]\n NULLIFY(&name,false); [line -1]\n NULLIFY(&self,false); [line -1]\n APPLY_ABSTRACTION; [line -1]\n " shape="box"] +15 [label="15: BinaryOperatorStmt: Assign \n n$14=*&self:class C * [line 31]\n n$16=*&name:class NSString * [line -1]\n n$15=_fun_NSString_copy(n$16:class NSString *) virtual [line -1]\n *n$14._name:class NSString *=n$15 [line -1]\n REMOVE_TEMPS(n$14,n$15,n$16); [line -1]\n NULLIFY(&name,false); [line -1]\n NULLIFY(&self,false); [line -1]\n APPLY_ABSTRACTION; [line -1]\n " shape="box"] 15 -> 14 ; @@ -44,33 +44,33 @@ digraph iCFG { 9 -> 8 ; -8 [label="8: DeclStmt \n n$8=*&a:class A * [line 35]\n n$7=_fun_A_getA(n$8:class A *) virtual [line 35]\n _fun___objc_retain(n$7:class A *) [line 35]\n *&a1:class A *=n$7 [line 35]\n REMOVE_TEMPS(n$7,n$8); [line 35]\n NULLIFY(&a,false); [line 35]\n " shape="box"] +8 [label="8: DeclStmt \n n$8=*&a:class A * [line 39]\n n$7=_fun_A_getA(n$8:class A *) virtual [line 39]\n _fun___objc_retain(n$7:class A *) [line 39]\n *&a1:class A *=n$7 [line 39]\n REMOVE_TEMPS(n$7,n$8); [line 39]\n NULLIFY(&a,false); [line 39]\n " shape="box"] 8 -> 7 ; -7 [label="7: DeclStmt \n n$5=*&a1:class A * [line 36]\n n$6=*n$5.x:int [line 36]\n *&y:int =n$6 [line 36]\n REMOVE_TEMPS(n$5,n$6); [line 36]\n NULLIFY(&a1,false); [line 36]\n NULLIFY(&y,false); [line 36]\n " shape="box"] +7 [label="7: DeclStmt \n n$5=*&a1:class A * [line 40]\n n$6=*n$5.x:int [line 40]\n *&y:int =n$6 [line 40]\n REMOVE_TEMPS(n$5,n$6); [line 40]\n NULLIFY(&a1,false); [line 40]\n NULLIFY(&y,false); [line 40]\n " shape="box"] 7 -> 6 ; -6 [label="6: Return Stmt \n n$4=*&self:class C * [line 37]\n *&return:struct objc_object *=n$4 [line 37]\n REMOVE_TEMPS(n$4); [line 37]\n NULLIFY(&self,false); [line 37]\n APPLY_ABSTRACTION; [line 37]\n " shape="box"] +6 [label="6: Return Stmt \n n$4=*&self:class C * [line 41]\n *&return:struct objc_object *=n$4 [line 41]\n REMOVE_TEMPS(n$4); [line 41]\n NULLIFY(&self,false); [line 41]\n APPLY_ABSTRACTION; [line 41]\n " shape="box"] 6 -> 5 ; 5 [label="5: Exit C_initWithCoder:and: \n " color=yellow style=filled] -4 [label="4: Start C_initWithCoder:and:\nFormals: self:class C * aDecoder:class NSString * a:class A *\nLocals: a1:class A * y:int \n DECLARE_LOCALS(&return,&a1,&y); [line 33]\n NULLIFY(&a1,false); [line 33]\n NULLIFY(&aDecoder,false); [line 33]\n NULLIFY(&y,false); [line 33]\n " color=yellow style=filled] +4 [label="4: Start C_initWithCoder:and:\nFormals: self:class C * aDecoder:class NSString * a:class A *\nLocals: a1:class A * y:int \n DECLARE_LOCALS(&return,&a1,&y); [line 37]\n NULLIFY(&a1,false); [line 37]\n NULLIFY(&aDecoder,false); [line 37]\n NULLIFY(&y,false); [line 37]\n " color=yellow style=filled] 4 -> 9 ; -3 [label="3: Return Stmt \n n$1=_fun___objc_alloc_no_fail(sizeof(class A ):class A *) [line 21]\n n$2=_fun_A_init(n$1:class A *) virtual [line 21]\n *&return:class A *=n$2 [line 21]\n n$3=_fun___set_autorelease_attribute(n$2:class A *) [line 21]\n REMOVE_TEMPS(n$1,n$2,n$3); [line 21]\n APPLY_ABSTRACTION; [line 21]\n " shape="box"] +3 [label="3: Return Stmt \n n$1=_fun___objc_alloc_no_fail(sizeof(class A ):class A *) [line 25]\n n$2=_fun_A_init(n$1:class A *) virtual [line 25]\n *&return:class A *=n$2 [line 25]\n n$3=_fun___set_autorelease_attribute(n$2:class A *) [line 25]\n REMOVE_TEMPS(n$1,n$2,n$3); [line 25]\n APPLY_ABSTRACTION; [line 25]\n " shape="box"] 3 -> 2 ; 2 [label="2: Exit A_getA \n " color=yellow style=filled] -1 [label="1: Start A_getA\nFormals: self:class A *\nLocals: \n DECLARE_LOCALS(&return); [line 20]\n NULLIFY(&self,false); [line 20]\n " color=yellow style=filled] +1 [label="1: Start A_getA\nFormals: self:class A *\nLocals: \n DECLARE_LOCALS(&return); [line 24]\n NULLIFY(&self,false); [line 24]\n " color=yellow style=filled] 1 -> 3 ; diff --git a/infer/tests/codetoanalyze/objc/errors/npe/Nonnull_attribute_example.m b/infer/tests/codetoanalyze/objc/errors/npe/Nonnull_attribute_example.m index f9781df74..bb95c8cd2 100644 --- a/infer/tests/codetoanalyze/objc/errors/npe/Nonnull_attribute_example.m +++ b/infer/tests/codetoanalyze/objc/errors/npe/Nonnull_attribute_example.m @@ -1,6 +1,10 @@ /* - * Copyright (c) 2015 - Facebook. - * All rights reserved. +* Copyright (c) 2015 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ #import diff --git a/infer/tests/codetoanalyze/objc/errors/npe/UpdateDict.m b/infer/tests/codetoanalyze/objc/errors/npe/UpdateDict.m index ea09e8053..e913eb475 100644 --- a/infer/tests/codetoanalyze/objc/errors/npe/UpdateDict.m +++ b/infer/tests/codetoanalyze/objc/errors/npe/UpdateDict.m @@ -1,6 +1,10 @@ /* - * Copyright (c) 2014 - Facebook. - * All rights reserved. +* Copyright (c) 2014 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ #import diff --git a/infer/tests/codetoanalyze/objc/errors/npe/block.m b/infer/tests/codetoanalyze/objc/errors/npe/block.m index 493de9012..915d1a8d9 100644 --- a/infer/tests/codetoanalyze/objc/errors/npe/block.m +++ b/infer/tests/codetoanalyze/objc/errors/npe/block.m @@ -1,6 +1,10 @@ /* - * Copyright (c) 2014 - Facebook. - * All rights reserved. +* Copyright (c) 2014 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ #import diff --git a/infer/tests/codetoanalyze/objc/errors/npe/nil_in_array_literal.m b/infer/tests/codetoanalyze/objc/errors/npe/nil_in_array_literal.m index 0cb8a67c3..b1c8e8bb6 100644 --- a/infer/tests/codetoanalyze/objc/errors/npe/nil_in_array_literal.m +++ b/infer/tests/codetoanalyze/objc/errors/npe/nil_in_array_literal.m @@ -1,6 +1,10 @@ /* - * Copyright (c) 2014 - Facebook. - * All rights reserved. +* Copyright (c) 2014 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ #import diff --git a/infer/tests/codetoanalyze/objc/errors/npe/nil_param.m b/infer/tests/codetoanalyze/objc/errors/npe/nil_param.m index d99918329..b996b4a08 100644 --- a/infer/tests/codetoanalyze/objc/errors/npe/nil_param.m +++ b/infer/tests/codetoanalyze/objc/errors/npe/nil_param.m @@ -1,6 +1,10 @@ /* - * Copyright (c) 2014 - Facebook. - * All rights reserved. +* Copyright (c) 2014 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ #import diff --git a/infer/tests/codetoanalyze/objc/errors/npe/npe_malloc.dot b/infer/tests/codetoanalyze/objc/errors/npe/npe_malloc.dot index c5c82bfba..b922e0dd5 100644 --- a/infer/tests/codetoanalyze/objc/errors/npe/npe_malloc.dot +++ b/infer/tests/codetoanalyze/objc/errors/npe/npe_malloc.dot @@ -1,20 +1,20 @@ digraph iCFG { -5 [label="5: DeclStmt \n n$2=_fun_malloc_no_fail(sizeof(struct Person ):struct Person ) [line 22]\n *&person:struct Person *=n$2 [line 22]\n REMOVE_TEMPS(n$2); [line 22]\n " shape="box"] +5 [label="5: DeclStmt \n n$2=_fun_malloc_no_fail(sizeof(struct Person ):struct Person ) [line 26]\n *&person:struct Person *=n$2 [line 26]\n REMOVE_TEMPS(n$2); [line 26]\n " shape="box"] 5 -> 4 ; -4 [label="4: BinaryOperatorStmt: Assign \n n$1=*&person:struct Person * [line 23]\n *n$1.x:int =10 [line 23]\n REMOVE_TEMPS(n$1); [line 23]\n " shape="box"] +4 [label="4: BinaryOperatorStmt: Assign \n n$1=*&person:struct Person * [line 27]\n *n$1.x:int =10 [line 27]\n REMOVE_TEMPS(n$1); [line 27]\n " shape="box"] 4 -> 3 ; -3 [label="3: Return Stmt \n n$0=*&person:struct Person * [line 24]\n *&return:struct Person *=n$0 [line 24]\n REMOVE_TEMPS(n$0); [line 24]\n NULLIFY(&person,false); [line 24]\n APPLY_ABSTRACTION; [line 24]\n " shape="box"] +3 [label="3: Return Stmt \n n$0=*&person:struct Person * [line 28]\n *&return:struct Person *=n$0 [line 28]\n REMOVE_TEMPS(n$0); [line 28]\n NULLIFY(&person,false); [line 28]\n APPLY_ABSTRACTION; [line 28]\n " shape="box"] 3 -> 2 ; 2 [label="2: Exit C_test \n " color=yellow style=filled] -1 [label="1: Start C_test\nFormals: self:class C *\nLocals: person:struct Person * \n DECLARE_LOCALS(&return,&person); [line 20]\n NULLIFY(&person,false); [line 20]\n NULLIFY(&self,false); [line 20]\n " color=yellow style=filled] +1 [label="1: Start C_test\nFormals: self:class C *\nLocals: person:struct Person * \n DECLARE_LOCALS(&return,&person); [line 24]\n NULLIFY(&person,false); [line 24]\n NULLIFY(&self,false); [line 24]\n " color=yellow style=filled] 1 -> 5 ; diff --git a/infer/tests/codetoanalyze/objc/errors/npe/npe_malloc.m b/infer/tests/codetoanalyze/objc/errors/npe/npe_malloc.m index 8b1c8d19a..51fdae810 100644 --- a/infer/tests/codetoanalyze/objc/errors/npe/npe_malloc.m +++ b/infer/tests/codetoanalyze/objc/errors/npe/npe_malloc.m @@ -1,6 +1,10 @@ /* - * Copyright (c) 2014 - Facebook. - * All rights reserved. +* Copyright (c) 2014 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ #import diff --git a/infer/tests/codetoanalyze/objc/errors/npe/npe_self.m b/infer/tests/codetoanalyze/objc/errors/npe/npe_self.m index ed4845d0c..615adcab4 100644 --- a/infer/tests/codetoanalyze/objc/errors/npe/npe_self.m +++ b/infer/tests/codetoanalyze/objc/errors/npe/npe_self.m @@ -1,6 +1,10 @@ /* - * Copyright (c) 2013- Facebook. - * All rights reserved. +* Copyright (c) 2013 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ #import diff --git a/infer/tests/codetoanalyze/objc/errors/npe/null_returned_by_method.m b/infer/tests/codetoanalyze/objc/errors/npe/null_returned_by_method.m index 29c45e3f4..60404a64e 100644 --- a/infer/tests/codetoanalyze/objc/errors/npe/null_returned_by_method.m +++ b/infer/tests/codetoanalyze/objc/errors/npe/null_returned_by_method.m @@ -1,6 +1,10 @@ /* - * Copyright (c) 2014 - Facebook. - * All rights reserved. +* Copyright (c) 2014 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ #import diff --git a/infer/tests/codetoanalyze/objc/errors/procdescs/MethodCall.h b/infer/tests/codetoanalyze/objc/errors/procdescs/MethodCall.h index 369d6aed9..b76810889 100644 --- a/infer/tests/codetoanalyze/objc/errors/procdescs/MethodCall.h +++ b/infer/tests/codetoanalyze/objc/errors/procdescs/MethodCall.h @@ -1,6 +1,10 @@ /* - * Copyright (c) 2014 - Facebook. - * All rights reserved. +* Copyright (c) 2014 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ #import diff --git a/infer/tests/codetoanalyze/objc/errors/procdescs/MethodCall.m b/infer/tests/codetoanalyze/objc/errors/procdescs/MethodCall.m index 538027d8a..fb7450233 100644 --- a/infer/tests/codetoanalyze/objc/errors/procdescs/MethodCall.m +++ b/infer/tests/codetoanalyze/objc/errors/procdescs/MethodCall.m @@ -1,6 +1,10 @@ /* - * Copyright (c) 2014 - Facebook. - * All rights reserved. +* Copyright (c) 2014 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ #import "MethodCall.h" diff --git a/infer/tests/codetoanalyze/objc/errors/procdescs/main.c b/infer/tests/codetoanalyze/objc/errors/procdescs/main.c index 5873bb354..27784dbb1 100644 --- a/infer/tests/codetoanalyze/objc/errors/procdescs/main.c +++ b/infer/tests/codetoanalyze/objc/errors/procdescs/main.c @@ -1,6 +1,10 @@ /* - * Copyright (c) 2014 - Facebook. - * All rights reserved. +* Copyright (c) 2014 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ #include "MethodCall.h" diff --git a/infer/tests/codetoanalyze/objc/errors/property/IvarExample.h b/infer/tests/codetoanalyze/objc/errors/property/IvarExample.h index b35edb385..007787fd2 100644 --- a/infer/tests/codetoanalyze/objc/errors/property/IvarExample.h +++ b/infer/tests/codetoanalyze/objc/errors/property/IvarExample.h @@ -1,6 +1,10 @@ /* - * Copyright (c) 2014 - Facebook. - * All rights reserved. +* Copyright (c) 2014 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ #import diff --git a/infer/tests/codetoanalyze/objc/errors/property/main.c b/infer/tests/codetoanalyze/objc/errors/property/main.c index d39aac8eb..06f2441d9 100644 --- a/infer/tests/codetoanalyze/objc/errors/property/main.c +++ b/infer/tests/codetoanalyze/objc/errors/property/main.c @@ -1,6 +1,10 @@ /* - * Copyright (c) 2014 - Facebook. - * All rights reserved. +* Copyright (c) 2014 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ #include "IvarExample.h" diff --git a/infer/tests/codetoanalyze/objc/errors/protocol_procdesc/Bicycle.h b/infer/tests/codetoanalyze/objc/errors/protocol_procdesc/Bicycle.h index a29d234d6..a8d0e9dbe 100644 --- a/infer/tests/codetoanalyze/objc/errors/protocol_procdesc/Bicycle.h +++ b/infer/tests/codetoanalyze/objc/errors/protocol_procdesc/Bicycle.h @@ -1,6 +1,10 @@ /* - * Copyright (c) 2014 - Facebook. - * All rights reserved. +* Copyright (c) 2014 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ #import "StreetVehicle.h" diff --git a/infer/tests/codetoanalyze/objc/errors/protocol_procdesc/Bicycle.m b/infer/tests/codetoanalyze/objc/errors/protocol_procdesc/Bicycle.m index 412aabb81..3add2b7fb 100644 --- a/infer/tests/codetoanalyze/objc/errors/protocol_procdesc/Bicycle.m +++ b/infer/tests/codetoanalyze/objc/errors/protocol_procdesc/Bicycle.m @@ -1,6 +1,10 @@ /* - * Copyright (c) 2014 - Facebook. - * All rights reserved. +* Copyright (c) 2014 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ #import "Bicycle.h" diff --git a/infer/tests/codetoanalyze/objc/errors/protocol_procdesc/StreetVehicle.h b/infer/tests/codetoanalyze/objc/errors/protocol_procdesc/StreetVehicle.h index 6662c047c..283cf69ed 100644 --- a/infer/tests/codetoanalyze/objc/errors/protocol_procdesc/StreetVehicle.h +++ b/infer/tests/codetoanalyze/objc/errors/protocol_procdesc/StreetVehicle.h @@ -1,6 +1,10 @@ /* - * Copyright (c) 2014 - Facebook. - * All rights reserved. +* Copyright (c) 2014 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ #import diff --git a/infer/tests/codetoanalyze/objc/errors/protocol_procdesc/main.c b/infer/tests/codetoanalyze/objc/errors/protocol_procdesc/main.c index f68cfd906..cbf3bff3e 100644 --- a/infer/tests/codetoanalyze/objc/errors/protocol_procdesc/main.c +++ b/infer/tests/codetoanalyze/objc/errors/protocol_procdesc/main.c @@ -1,6 +1,10 @@ /* - * Copyright (c) 2014 - Facebook. - * All rights reserved. +* Copyright (c) 2014 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ #include "Bicycle.h" diff --git a/infer/tests/codetoanalyze/objc/errors/protocol_procdesc/main.dot b/infer/tests/codetoanalyze/objc/errors/protocol_procdesc/main.dot index 24901ca81..d5e7439e2 100644 --- a/infer/tests/codetoanalyze/objc/errors/protocol_procdesc/main.dot +++ b/infer/tests/codetoanalyze/objc/errors/protocol_procdesc/main.dot @@ -1,20 +1,20 @@ digraph iCFG { -5 [label="5: DeclStmt \n n$2=_fun___objc_alloc_no_fail(sizeof(class Bicycle ):class Bicycle *) [line 11]\n *&bike:class Bicycle *=n$2 [line 11]\n REMOVE_TEMPS(n$2); [line 11]\n " shape="box"] +5 [label="5: DeclStmt \n n$2=_fun___objc_alloc_no_fail(sizeof(class Bicycle ):class Bicycle *) [line 15]\n *&bike:class Bicycle *=n$2 [line 15]\n REMOVE_TEMPS(n$2); [line 15]\n " shape="box"] 5 -> 4 ; -4 [label="4: Message Call: signalStop \n n$0=*&bike:class Bicycle * [line 13]\n _fun_Bicycle_signalStop(n$0:class Bicycle *) virtual [line 13]\n REMOVE_TEMPS(n$0); [line 13]\n NULLIFY(&bike,false); [line 13]\n " shape="box"] +4 [label="4: Message Call: signalStop \n n$0=*&bike:class Bicycle * [line 17]\n _fun_Bicycle_signalStop(n$0:class Bicycle *) virtual [line 17]\n REMOVE_TEMPS(n$0); [line 17]\n NULLIFY(&bike,false); [line 17]\n " shape="box"] 4 -> 3 ; -3 [label="3: Return Stmt \n *&return:int =0 [line 15]\n APPLY_ABSTRACTION; [line 15]\n " shape="box"] +3 [label="3: Return Stmt \n *&return:int =0 [line 19]\n APPLY_ABSTRACTION; [line 19]\n " shape="box"] 3 -> 2 ; 2 [label="2: Exit main \n " color=yellow style=filled] -1 [label="1: Start main\nFormals: \nLocals: bike:class Bicycle * \n DECLARE_LOCALS(&return,&bike); [line 9]\n NULLIFY(&bike,false); [line 9]\n " color=yellow style=filled] +1 [label="1: Start main\nFormals: \nLocals: bike:class Bicycle * \n DECLARE_LOCALS(&return,&bike); [line 13]\n NULLIFY(&bike,false); [line 13]\n " color=yellow style=filled] 1 -> 5 ; diff --git a/infer/tests/codetoanalyze/objc/errors/resource_leaks/ResourceLeakExample.m b/infer/tests/codetoanalyze/objc/errors/resource_leaks/ResourceLeakExample.m index e0306856b..2aa72894f 100644 --- a/infer/tests/codetoanalyze/objc/errors/resource_leaks/ResourceLeakExample.m +++ b/infer/tests/codetoanalyze/objc/errors/resource_leaks/ResourceLeakExample.m @@ -1,6 +1,10 @@ /* - * Copyright (c) 2014 - Facebook. - * All rights reserved. +* Copyright (c) 2014 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ #import diff --git a/infer/tests/codetoanalyze/objc/errors/returnstmt/return_npe_test.m b/infer/tests/codetoanalyze/objc/errors/returnstmt/return_npe_test.m index 2e5e52361..91ca2f9fa 100644 --- a/infer/tests/codetoanalyze/objc/errors/returnstmt/return_npe_test.m +++ b/infer/tests/codetoanalyze/objc/errors/returnstmt/return_npe_test.m @@ -1,6 +1,10 @@ /* - * Copyright (c) 2014 - Facebook. - * All rights reserved. +* Copyright (c) 2014 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ #import diff --git a/infer/tests/codetoanalyze/objc/errors/variadic_methods/premature_nil_termination.m b/infer/tests/codetoanalyze/objc/errors/variadic_methods/premature_nil_termination.m index 6e158f8d3..932ce1c2b 100644 --- a/infer/tests/codetoanalyze/objc/errors/variadic_methods/premature_nil_termination.m +++ b/infer/tests/codetoanalyze/objc/errors/variadic_methods/premature_nil_termination.m @@ -1,6 +1,10 @@ /* - * Copyright (c) 2014 - Facebook. - * All rights reserved. +* Copyright (c) 2014 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ #import diff --git a/infer/tests/codetoanalyze/objc/frontend/assertions/NSAssert_example.dot b/infer/tests/codetoanalyze/objc/frontend/assertions/NSAssert_example.dot index ed6e78992..1db9ddd49 100644 --- a/infer/tests/codetoanalyze/objc/frontend/assertions/NSAssert_example.dot +++ b/infer/tests/codetoanalyze/objc/frontend/assertions/NSAssert_example.dot @@ -1,29 +1,29 @@ digraph iCFG { -69 [label="69: Assertion failure \n _fun___infer_fail(\"ASSERTION_FAILURE\":void ) [line 32]\n APPLY_ABSTRACTION; [line 32]\n " shape="box"] +69 [label="69: Assertion failure \n _fun___infer_fail(\"ASSERTION_FAILURE\":void ) [line 36]\n APPLY_ABSTRACTION; [line 36]\n " shape="box"] 69 -> 56 ; -68 [label="68: Prune (false branch) \n n$33=*&SIL_temp_conditional___62:int [line 34]\n NULLIFY(&SIL_temp_conditional___62,true); [line 34]\n PRUNE((n$33 == 0), false); [line 34]\n REMOVE_TEMPS(n$33); [line 34]\n " shape="invhouse"] +68 [label="68: Prune (false branch) \n n$33=*&SIL_temp_conditional___62:int [line 38]\n NULLIFY(&SIL_temp_conditional___62,true); [line 38]\n PRUNE((n$33 == 0), false); [line 38]\n REMOVE_TEMPS(n$33); [line 38]\n " shape="invhouse"] 68 -> 61 ; -67 [label="67: Prune (true branch) \n n$33=*&SIL_temp_conditional___62:int [line 34]\n NULLIFY(&SIL_temp_conditional___62,true); [line 34]\n PRUNE((n$33 != 0), true); [line 34]\n REMOVE_TEMPS(n$33); [line 34]\n NULLIFY(&target,false); [line 34]\n " shape="invhouse"] +67 [label="67: Prune (true branch) \n n$33=*&SIL_temp_conditional___62:int [line 38]\n NULLIFY(&SIL_temp_conditional___62,true); [line 38]\n PRUNE((n$33 != 0), true); [line 38]\n REMOVE_TEMPS(n$33); [line 38]\n NULLIFY(&target,false); [line 38]\n " shape="invhouse"] 67 -> 69 ; -66 [label="66: ConditinalStmt Branch \n DECLARE_LOCALS(&SIL_temp_conditional___62); [line 34]\n *&SIL_temp_conditional___62:int =1 [line 34]\n APPLY_ABSTRACTION; [line 34]\n " shape="box"] +66 [label="66: ConditinalStmt Branch \n DECLARE_LOCALS(&SIL_temp_conditional___62); [line 38]\n *&SIL_temp_conditional___62:int =1 [line 38]\n APPLY_ABSTRACTION; [line 38]\n " shape="box"] 66 -> 62 ; -65 [label="65: ConditinalStmt Branch \n DECLARE_LOCALS(&SIL_temp_conditional___62); [line 34]\n *&SIL_temp_conditional___62:int =0 [line 34]\n APPLY_ABSTRACTION; [line 34]\n " shape="box"] +65 [label="65: ConditinalStmt Branch \n DECLARE_LOCALS(&SIL_temp_conditional___62); [line 38]\n *&SIL_temp_conditional___62:int =0 [line 38]\n APPLY_ABSTRACTION; [line 38]\n " shape="box"] 65 -> 62 ; -64 [label="64: Prune (false branch) \n n$32=*&target:class A * [line 34]\n PRUNE((n$32 == 0), false); [line 34]\n REMOVE_TEMPS(n$32); [line 34]\n " shape="invhouse"] +64 [label="64: Prune (false branch) \n n$32=*&target:class A * [line 38]\n PRUNE((n$32 == 0), false); [line 38]\n REMOVE_TEMPS(n$32); [line 38]\n " shape="invhouse"] 64 -> 66 ; -63 [label="63: Prune (true branch) \n n$32=*&target:class A * [line 34]\n PRUNE((n$32 != 0), true); [line 34]\n REMOVE_TEMPS(n$32); [line 34]\n " shape="invhouse"] +63 [label="63: Prune (true branch) \n n$32=*&target:class A * [line 38]\n PRUNE((n$32 != 0), true); [line 38]\n REMOVE_TEMPS(n$32); [line 38]\n " shape="invhouse"] 63 -> 65 ; @@ -37,11 +37,11 @@ digraph iCFG { 61 -> 59 ; 61 -> 60 ; -60 [label="60: Prune (false branch) \n PRUNE((0 == 0), false); [line 32]\n " shape="invhouse"] +60 [label="60: Prune (false branch) \n PRUNE((0 == 0), false); [line 36]\n " shape="invhouse"] 60 -> 57 ; -59 [label="59: Prune (true branch) \n PRUNE((0 != 0), true); [line 32]\n APPLY_ABSTRACTION; [line 32]\n " shape="invhouse"] +59 [label="59: Prune (true branch) \n PRUNE((0 != 0), true); [line 36]\n APPLY_ABSTRACTION; [line 36]\n " shape="invhouse"] 59 -> 58 ; @@ -50,46 +50,46 @@ digraph iCFG { 58 -> 63 ; 58 -> 64 ; -57 [label="57: Return Stmt \n n$31=*&target:class A * [line 33]\n n$30=_fun_A_x(n$31:class A *) virtual [line 33]\n *&return:int =n$30 [line 33]\n REMOVE_TEMPS(n$30,n$31); [line 33]\n NULLIFY(&target,false); [line 33]\n APPLY_ABSTRACTION; [line 33]\n " shape="box"] +57 [label="57: Return Stmt \n n$31=*&target:class A * [line 37]\n n$30=_fun_A_x(n$31:class A *) virtual [line 37]\n *&return:int =n$30 [line 37]\n REMOVE_TEMPS(n$30,n$31); [line 37]\n NULLIFY(&target,false); [line 37]\n APPLY_ABSTRACTION; [line 37]\n " shape="box"] 57 -> 56 ; 56 [label="56: Exit test2 \n " color=yellow style=filled] -55 [label="55: Start test2\nFormals: target:class A *\nLocals: \n DECLARE_LOCALS(&return); [line 31]\n " color=yellow style=filled] +55 [label="55: Start test2\nFormals: target:class A *\nLocals: \n DECLARE_LOCALS(&return); [line 35]\n " color=yellow style=filled] 55 -> 58 ; -54 [label="54: Assertion failure \n _fun___infer_fail(\"ASSERTION_FAILURE\":void ) [line 27]\n APPLY_ABSTRACTION; [line 27]\n " shape="box"] +54 [label="54: Assertion failure \n _fun___infer_fail(\"ASSERTION_FAILURE\":void ) [line 31]\n APPLY_ABSTRACTION; [line 31]\n " shape="box"] 54 -> 40 ; -53 [label="53: Prune (false branch) \n n$25=*&SIL_temp_conditional___46:int [line 29]\n NULLIFY(&SIL_temp_conditional___46,true); [line 29]\n PRUNE((n$25 == 0), false); [line 29]\n REMOVE_TEMPS(n$25); [line 29]\n " shape="invhouse"] +53 [label="53: Prune (false branch) \n n$25=*&SIL_temp_conditional___46:int [line 33]\n NULLIFY(&SIL_temp_conditional___46,true); [line 33]\n PRUNE((n$25 == 0), false); [line 33]\n REMOVE_TEMPS(n$25); [line 33]\n " shape="invhouse"] 53 -> 45 ; -52 [label="52: Prune (true branch) \n n$25=*&SIL_temp_conditional___46:int [line 29]\n NULLIFY(&SIL_temp_conditional___46,true); [line 29]\n PRUNE((n$25 != 0), true); [line 29]\n REMOVE_TEMPS(n$25); [line 29]\n NULLIFY(&target,false); [line 29]\n " shape="invhouse"] +52 [label="52: Prune (true branch) \n n$25=*&SIL_temp_conditional___46:int [line 33]\n NULLIFY(&SIL_temp_conditional___46,true); [line 33]\n PRUNE((n$25 != 0), true); [line 33]\n REMOVE_TEMPS(n$25); [line 33]\n NULLIFY(&target,false); [line 33]\n " shape="invhouse"] 52 -> 54 ; -51 [label="51: ConditinalStmt Branch \n DECLARE_LOCALS(&SIL_temp_conditional___46); [line 29]\n *&SIL_temp_conditional___46:int =1 [line 29]\n APPLY_ABSTRACTION; [line 29]\n " shape="box"] +51 [label="51: ConditinalStmt Branch \n DECLARE_LOCALS(&SIL_temp_conditional___46); [line 33]\n *&SIL_temp_conditional___46:int =1 [line 33]\n APPLY_ABSTRACTION; [line 33]\n " shape="box"] 51 -> 46 ; -50 [label="50: ConditinalStmt Branch \n DECLARE_LOCALS(&SIL_temp_conditional___46); [line 29]\n *&SIL_temp_conditional___46:int =0 [line 29]\n APPLY_ABSTRACTION; [line 29]\n " shape="box"] +50 [label="50: ConditinalStmt Branch \n DECLARE_LOCALS(&SIL_temp_conditional___46); [line 33]\n *&SIL_temp_conditional___46:int =0 [line 33]\n APPLY_ABSTRACTION; [line 33]\n " shape="box"] 50 -> 46 ; -49 [label="49: Prune (false branch) \n PRUNE(((n$24 != (void *)0) == 0), false); [line 27]\n REMOVE_TEMPS(n$24); [line 27]\n " shape="invhouse"] +49 [label="49: Prune (false branch) \n PRUNE(((n$24 != (void *)0) == 0), false); [line 31]\n REMOVE_TEMPS(n$24); [line 31]\n " shape="invhouse"] 49 -> 51 ; -48 [label="48: Prune (true branch) \n PRUNE(((n$24 != (void *)0) != 0), true); [line 27]\n REMOVE_TEMPS(n$24); [line 27]\n " shape="invhouse"] +48 [label="48: Prune (true branch) \n PRUNE(((n$24 != (void *)0) != 0), true); [line 31]\n REMOVE_TEMPS(n$24); [line 31]\n " shape="invhouse"] 48 -> 50 ; -47 [label="47: BinaryOperatorStmt: NE \n n$24=*&target:class A * [line 27]\n " shape="box"] +47 [label="47: BinaryOperatorStmt: NE \n n$24=*&target:class A * [line 31]\n " shape="box"] 47 -> 48 ; @@ -104,11 +104,11 @@ digraph iCFG { 45 -> 43 ; 45 -> 44 ; -44 [label="44: Prune (false branch) \n PRUNE((0 == 0), false); [line 27]\n " shape="invhouse"] +44 [label="44: Prune (false branch) \n PRUNE((0 == 0), false); [line 31]\n " shape="invhouse"] 44 -> 41 ; -43 [label="43: Prune (true branch) \n PRUNE((0 != 0), true); [line 27]\n APPLY_ABSTRACTION; [line 27]\n " shape="invhouse"] +43 [label="43: Prune (true branch) \n PRUNE((0 != 0), true); [line 31]\n APPLY_ABSTRACTION; [line 31]\n " shape="invhouse"] 43 -> 42 ; @@ -116,18 +116,18 @@ digraph iCFG { 42 -> 47 ; -41 [label="41: Return Stmt \n n$23=*&target:class A * [line 28]\n n$22=_fun_A_x(n$23:class A *) virtual [line 28]\n *&return:int =n$22 [line 28]\n REMOVE_TEMPS(n$22,n$23); [line 28]\n NULLIFY(&target,false); [line 28]\n APPLY_ABSTRACTION; [line 28]\n " shape="box"] +41 [label="41: Return Stmt \n n$23=*&target:class A * [line 32]\n n$22=_fun_A_x(n$23:class A *) virtual [line 32]\n *&return:int =n$22 [line 32]\n REMOVE_TEMPS(n$22,n$23); [line 32]\n NULLIFY(&target,false); [line 32]\n APPLY_ABSTRACTION; [line 32]\n " shape="box"] 41 -> 40 ; 40 [label="40: Exit test1 \n " color=yellow style=filled] -39 [label="39: Start test1\nFormals: target:class A *\nLocals: \n DECLARE_LOCALS(&return); [line 26]\n " color=yellow style=filled] +39 [label="39: Start test1\nFormals: target:class A *\nLocals: \n DECLARE_LOCALS(&return); [line 30]\n " color=yellow style=filled] 39 -> 42 ; -38 [label="38: BinaryOperatorStmt: Assign \n n$20=*&self:class A * [line 9]\n n$21=*&x:int [line 9]\n *n$20._x:int =n$21 [line -1]\n REMOVE_TEMPS(n$20,n$21); [line -1]\n NULLIFY(&self,false); [line -1]\n NULLIFY(&x,false); [line -1]\n APPLY_ABSTRACTION; [line -1]\n " shape="box"] +38 [label="38: BinaryOperatorStmt: Assign \n n$20=*&self:class A * [line 13]\n n$21=*&x:int [line 13]\n *n$20._x:int =n$21 [line -1]\n REMOVE_TEMPS(n$20,n$21); [line -1]\n NULLIFY(&self,false); [line -1]\n NULLIFY(&x,false); [line -1]\n APPLY_ABSTRACTION; [line -1]\n " shape="box"] 38 -> 37 ; @@ -149,35 +149,35 @@ digraph iCFG { 33 -> 35 ; -32 [label="32: Assertion failure \n _fun___infer_fail(\"ASSERTION_FAILURE\":void ) [line 20]\n APPLY_ABSTRACTION; [line 20]\n " shape="box"] +32 [label="32: Assertion failure \n _fun___infer_fail(\"ASSERTION_FAILURE\":void ) [line 24]\n APPLY_ABSTRACTION; [line 24]\n " shape="box"] 32 -> 18 ; -31 [label="31: Prune (false branch) \n n$12=*&SIL_temp_conditional___24:int [line 22]\n NULLIFY(&SIL_temp_conditional___24,true); [line 22]\n PRUNE((n$12 == 0), false); [line 22]\n REMOVE_TEMPS(n$12); [line 22]\n " shape="invhouse"] +31 [label="31: Prune (false branch) \n n$12=*&SIL_temp_conditional___24:int [line 26]\n NULLIFY(&SIL_temp_conditional___24,true); [line 26]\n PRUNE((n$12 == 0), false); [line 26]\n REMOVE_TEMPS(n$12); [line 26]\n " shape="invhouse"] 31 -> 23 ; -30 [label="30: Prune (true branch) \n n$12=*&SIL_temp_conditional___24:int [line 22]\n NULLIFY(&SIL_temp_conditional___24,true); [line 22]\n PRUNE((n$12 != 0), true); [line 22]\n REMOVE_TEMPS(n$12); [line 22]\n NULLIFY(&a,false); [line 22]\n " shape="invhouse"] +30 [label="30: Prune (true branch) \n n$12=*&SIL_temp_conditional___24:int [line 26]\n NULLIFY(&SIL_temp_conditional___24,true); [line 26]\n PRUNE((n$12 != 0), true); [line 26]\n REMOVE_TEMPS(n$12); [line 26]\n NULLIFY(&a,false); [line 26]\n " shape="invhouse"] 30 -> 32 ; -29 [label="29: ConditinalStmt Branch \n DECLARE_LOCALS(&SIL_temp_conditional___24); [line 22]\n *&SIL_temp_conditional___24:int =1 [line 22]\n APPLY_ABSTRACTION; [line 22]\n " shape="box"] +29 [label="29: ConditinalStmt Branch \n DECLARE_LOCALS(&SIL_temp_conditional___24); [line 26]\n *&SIL_temp_conditional___24:int =1 [line 26]\n APPLY_ABSTRACTION; [line 26]\n " shape="box"] 29 -> 24 ; -28 [label="28: ConditinalStmt Branch \n DECLARE_LOCALS(&SIL_temp_conditional___24); [line 22]\n *&SIL_temp_conditional___24:int =0 [line 22]\n APPLY_ABSTRACTION; [line 22]\n " shape="box"] +28 [label="28: ConditinalStmt Branch \n DECLARE_LOCALS(&SIL_temp_conditional___24); [line 26]\n *&SIL_temp_conditional___24:int =0 [line 26]\n APPLY_ABSTRACTION; [line 26]\n " shape="box"] 28 -> 24 ; -27 [label="27: Prune (false branch) \n PRUNE(((n$11 != (void *)0) == 0), false); [line 20]\n REMOVE_TEMPS(n$11); [line 20]\n " shape="invhouse"] +27 [label="27: Prune (false branch) \n PRUNE(((n$11 != (void *)0) == 0), false); [line 24]\n REMOVE_TEMPS(n$11); [line 24]\n " shape="invhouse"] 27 -> 29 ; -26 [label="26: Prune (true branch) \n PRUNE(((n$11 != (void *)0) != 0), true); [line 20]\n REMOVE_TEMPS(n$11); [line 20]\n " shape="invhouse"] +26 [label="26: Prune (true branch) \n PRUNE(((n$11 != (void *)0) != 0), true); [line 24]\n REMOVE_TEMPS(n$11); [line 24]\n " shape="invhouse"] 26 -> 28 ; -25 [label="25: BinaryOperatorStmt: NE \n n$11=*&a:class A * [line 20]\n " shape="box"] +25 [label="25: BinaryOperatorStmt: NE \n n$11=*&a:class A * [line 24]\n " shape="box"] 25 -> 26 ; @@ -192,11 +192,11 @@ digraph iCFG { 23 -> 21 ; 23 -> 22 ; -22 [label="22: Prune (false branch) \n PRUNE((0 == 0), false); [line 20]\n " shape="invhouse"] +22 [label="22: Prune (false branch) \n PRUNE((0 == 0), false); [line 24]\n " shape="invhouse"] 22 -> 19 ; -21 [label="21: Prune (true branch) \n PRUNE((0 != 0), true); [line 20]\n APPLY_ABSTRACTION; [line 20]\n " shape="invhouse"] +21 [label="21: Prune (true branch) \n PRUNE((0 != 0), true); [line 24]\n APPLY_ABSTRACTION; [line 24]\n " shape="invhouse"] 21 -> 20 ; @@ -204,46 +204,46 @@ digraph iCFG { 20 -> 25 ; -19 [label="19: Return Stmt \n n$10=*&a:class A * [line 21]\n n$9=_fun_A_x(n$10:class A *) virtual [line 21]\n *&return:int =n$9 [line 21]\n REMOVE_TEMPS(n$9,n$10); [line 21]\n NULLIFY(&a,false); [line 21]\n APPLY_ABSTRACTION; [line 21]\n " shape="box"] +19 [label="19: Return Stmt \n n$10=*&a:class A * [line 25]\n n$9=_fun_A_x(n$10:class A *) virtual [line 25]\n *&return:int =n$9 [line 25]\n REMOVE_TEMPS(n$9,n$10); [line 25]\n NULLIFY(&a,false); [line 25]\n APPLY_ABSTRACTION; [line 25]\n " shape="box"] 19 -> 18 ; 18 [label="18: Exit A_initWithRequest: \n " color=yellow style=filled] -17 [label="17: Start A_initWithRequest:\nFormals: self:class A * a:class A *\nLocals: \n DECLARE_LOCALS(&return); [line 19]\n NULLIFY(&self,false); [line 19]\n " color=yellow style=filled] +17 [label="17: Start A_initWithRequest:\nFormals: self:class A * a:class A *\nLocals: \n DECLARE_LOCALS(&return); [line 23]\n NULLIFY(&self,false); [line 23]\n " color=yellow style=filled] 17 -> 20 ; -16 [label="16: Assertion failure \n _fun___infer_fail(\"ASSERTION_FAILURE\":void ) [line 15]\n APPLY_ABSTRACTION; [line 15]\n " shape="box"] +16 [label="16: Assertion failure \n _fun___infer_fail(\"ASSERTION_FAILURE\":void ) [line 19]\n APPLY_ABSTRACTION; [line 19]\n " shape="box"] 16 -> 2 ; -15 [label="15: Prune (false branch) \n n$3=*&SIL_temp_conditional___8:int [line 17]\n NULLIFY(&SIL_temp_conditional___8,true); [line 17]\n PRUNE((n$3 == 0), false); [line 17]\n REMOVE_TEMPS(n$3); [line 17]\n " shape="invhouse"] +15 [label="15: Prune (false branch) \n n$3=*&SIL_temp_conditional___8:int [line 21]\n NULLIFY(&SIL_temp_conditional___8,true); [line 21]\n PRUNE((n$3 == 0), false); [line 21]\n REMOVE_TEMPS(n$3); [line 21]\n " shape="invhouse"] 15 -> 7 ; -14 [label="14: Prune (true branch) \n n$3=*&SIL_temp_conditional___8:int [line 17]\n NULLIFY(&SIL_temp_conditional___8,true); [line 17]\n PRUNE((n$3 != 0), true); [line 17]\n REMOVE_TEMPS(n$3); [line 17]\n NULLIFY(&target,false); [line 17]\n " shape="invhouse"] +14 [label="14: Prune (true branch) \n n$3=*&SIL_temp_conditional___8:int [line 21]\n NULLIFY(&SIL_temp_conditional___8,true); [line 21]\n PRUNE((n$3 != 0), true); [line 21]\n REMOVE_TEMPS(n$3); [line 21]\n NULLIFY(&target,false); [line 21]\n " shape="invhouse"] 14 -> 16 ; -13 [label="13: ConditinalStmt Branch \n DECLARE_LOCALS(&SIL_temp_conditional___8); [line 17]\n *&SIL_temp_conditional___8:int =1 [line 17]\n APPLY_ABSTRACTION; [line 17]\n " shape="box"] +13 [label="13: ConditinalStmt Branch \n DECLARE_LOCALS(&SIL_temp_conditional___8); [line 21]\n *&SIL_temp_conditional___8:int =1 [line 21]\n APPLY_ABSTRACTION; [line 21]\n " shape="box"] 13 -> 8 ; -12 [label="12: ConditinalStmt Branch \n DECLARE_LOCALS(&SIL_temp_conditional___8); [line 17]\n *&SIL_temp_conditional___8:int =0 [line 17]\n APPLY_ABSTRACTION; [line 17]\n " shape="box"] +12 [label="12: ConditinalStmt Branch \n DECLARE_LOCALS(&SIL_temp_conditional___8); [line 21]\n *&SIL_temp_conditional___8:int =0 [line 21]\n APPLY_ABSTRACTION; [line 21]\n " shape="box"] 12 -> 8 ; -11 [label="11: Prune (false branch) \n PRUNE(((n$2 != (void *)0) == 0), false); [line 15]\n REMOVE_TEMPS(n$2); [line 15]\n " shape="invhouse"] +11 [label="11: Prune (false branch) \n PRUNE(((n$2 != (void *)0) == 0), false); [line 19]\n REMOVE_TEMPS(n$2); [line 19]\n " shape="invhouse"] 11 -> 13 ; -10 [label="10: Prune (true branch) \n PRUNE(((n$2 != (void *)0) != 0), true); [line 15]\n REMOVE_TEMPS(n$2); [line 15]\n " shape="invhouse"] +10 [label="10: Prune (true branch) \n PRUNE(((n$2 != (void *)0) != 0), true); [line 19]\n REMOVE_TEMPS(n$2); [line 19]\n " shape="invhouse"] 10 -> 12 ; -9 [label="9: BinaryOperatorStmt: NE \n n$2=*&target:class A * [line 15]\n " shape="box"] +9 [label="9: BinaryOperatorStmt: NE \n n$2=*&target:class A * [line 19]\n " shape="box"] 9 -> 10 ; @@ -258,11 +258,11 @@ digraph iCFG { 7 -> 5 ; 7 -> 6 ; -6 [label="6: Prune (false branch) \n PRUNE((0 == 0), false); [line 15]\n " shape="invhouse"] +6 [label="6: Prune (false branch) \n PRUNE((0 == 0), false); [line 19]\n " shape="invhouse"] 6 -> 3 ; -5 [label="5: Prune (true branch) \n PRUNE((0 != 0), true); [line 15]\n APPLY_ABSTRACTION; [line 15]\n " shape="invhouse"] +5 [label="5: Prune (true branch) \n PRUNE((0 != 0), true); [line 19]\n APPLY_ABSTRACTION; [line 19]\n " shape="invhouse"] 5 -> 4 ; @@ -270,14 +270,14 @@ digraph iCFG { 4 -> 9 ; -3 [label="3: Return Stmt \n n$1=*&target:class A * [line 16]\n n$0=_fun_A_x(n$1:class A *) virtual [line 16]\n *&return:int =n$0 [line 16]\n REMOVE_TEMPS(n$0,n$1); [line 16]\n NULLIFY(&target,false); [line 16]\n APPLY_ABSTRACTION; [line 16]\n " shape="box"] +3 [label="3: Return Stmt \n n$1=*&target:class A * [line 20]\n n$0=_fun_A_x(n$1:class A *) virtual [line 20]\n *&return:int =n$0 [line 20]\n REMOVE_TEMPS(n$0,n$1); [line 20]\n NULLIFY(&target,false); [line 20]\n APPLY_ABSTRACTION; [line 20]\n " shape="box"] 3 -> 2 ; 2 [label="2: Exit A_addTarget: \n " color=yellow style=filled] -1 [label="1: Start A_addTarget:\nFormals: self:class A * target:class A *\nLocals: \n DECLARE_LOCALS(&return); [line 14]\n NULLIFY(&self,false); [line 14]\n " color=yellow style=filled] +1 [label="1: Start A_addTarget:\nFormals: self:class A * target:class A *\nLocals: \n DECLARE_LOCALS(&return); [line 18]\n NULLIFY(&self,false); [line 18]\n " color=yellow style=filled] 1 -> 4 ; diff --git a/infer/tests/codetoanalyze/objc/frontend/assertions/NSAssert_example.m b/infer/tests/codetoanalyze/objc/frontend/assertions/NSAssert_example.m index fd795fa25..2dbd7cd64 100644 --- a/infer/tests/codetoanalyze/objc/frontend/assertions/NSAssert_example.m +++ b/infer/tests/codetoanalyze/objc/frontend/assertions/NSAssert_example.m @@ -1,6 +1,10 @@ /* - * Copyright (c) 2014 - Facebook. - * All rights reserved. +* Copyright (c) 2014 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ #import diff --git a/infer/tests/codetoanalyze/objc/frontend/block/BlockVar.dot b/infer/tests/codetoanalyze/objc/frontend/block/BlockVar.dot index d74c61333..c510dd15e 100644 --- a/infer/tests/codetoanalyze/objc/frontend/block/BlockVar.dot +++ b/infer/tests/codetoanalyze/objc/frontend/block/BlockVar.dot @@ -1,46 +1,46 @@ digraph iCFG { -12 [label="12: DeclStmt \n *&error:class NSError *=0 [line 18]\n NULLIFY(&error,false); [line 18]\n " shape="box"] +12 [label="12: DeclStmt \n *&error:class NSError *=0 [line 22]\n NULLIFY(&error,false); [line 22]\n " shape="box"] 12 -> 11 ; -11 [label="11: DeclStmt \n n$5=_fun_BlockVar_test() [line 19]\n *&res:int =n$5 [line 19]\n REMOVE_TEMPS(n$5); [line 19]\n " shape="box"] +11 [label="11: DeclStmt \n n$5=_fun_BlockVar_test() [line 23]\n *&res:int =n$5 [line 23]\n REMOVE_TEMPS(n$5); [line 23]\n " shape="box"] 11 -> 10 ; -10 [label="10: Return Stmt \n n$2=*&a:int [line 20]\n n$3=*&b:int [line 20]\n n$4=*&res:int [line 20]\n *&return:int =((n$2 + n$3) + n$4) [line 20]\n REMOVE_TEMPS(n$2,n$3,n$4); [line 20]\n NULLIFY(&a,false); [line 20]\n NULLIFY(&b,false); [line 20]\n NULLIFY(&res,false); [line 20]\n APPLY_ABSTRACTION; [line 20]\n " shape="box"] +10 [label="10: Return Stmt \n n$2=*&a:int [line 24]\n n$3=*&b:int [line 24]\n n$4=*&res:int [line 24]\n *&return:int =((n$2 + n$3) + n$4) [line 24]\n REMOVE_TEMPS(n$2,n$3,n$4); [line 24]\n NULLIFY(&a,false); [line 24]\n NULLIFY(&b,false); [line 24]\n NULLIFY(&res,false); [line 24]\n APPLY_ABSTRACTION; [line 24]\n " shape="box"] 10 -> 9 ; 9 [label="9: Exit __objc_anonymous_block_BlockVar_navigateToURLInBackground:resolver:______1 \n " color=yellow style=filled] -8 [label="8: Start __objc_anonymous_block_BlockVar_navigateToURLInBackground:resolver:______1\nFormals: a:int b:int \nLocals: error:class NSError * res:int \n DECLARE_LOCALS(&return,&error,&res); [line 17]\n NULLIFY(&error,false); [line 17]\n NULLIFY(&res,false); [line 17]\n " color=yellow style=filled] +8 [label="8: Start __objc_anonymous_block_BlockVar_navigateToURLInBackground:resolver:______1\nFormals: a:int b:int \nLocals: error:class NSError * res:int \n DECLARE_LOCALS(&return,&error,&res); [line 21]\n NULLIFY(&error,false); [line 21]\n NULLIFY(&res,false); [line 21]\n " color=yellow style=filled] 8 -> 12 ; -7 [label="7: DeclStmt \n DECLARE_LOCALS(&__objc_anonymous_block_BlockVar_navigateToURLInBackground:resolver:______1); [line 17]\n n$6=_fun___objc_alloc_no_fail(sizeof(class __objc_anonymous_block_BlockVar_navigateToURLInBackground:resolver:______1 ):class __objc_anonymous_block_BlockVar_navigateToURLInBackground:resolver:______1 *) [line 17]\n *&__objc_anonymous_block_BlockVar_navigateToURLInBackground:resolver:______1:class __objc_anonymous_block_BlockVar_navigateToURLInBackground:resolver:______1 =n$6 [line 17]\n *&addBlock:_fn_ (*)=(_fun___objc_anonymous_block_BlockVar_navigateToURLInBackground:resolver:______1) [line 17]\n REMOVE_TEMPS(n$6); [line 17]\n " shape="box"] +7 [label="7: DeclStmt \n DECLARE_LOCALS(&__objc_anonymous_block_BlockVar_navigateToURLInBackground:resolver:______1); [line 21]\n n$6=_fun___objc_alloc_no_fail(sizeof(class __objc_anonymous_block_BlockVar_navigateToURLInBackground:resolver:______1 ):class __objc_anonymous_block_BlockVar_navigateToURLInBackground:resolver:______1 *) [line 21]\n *&__objc_anonymous_block_BlockVar_navigateToURLInBackground:resolver:______1:class __objc_anonymous_block_BlockVar_navigateToURLInBackground:resolver:______1 =n$6 [line 21]\n *&addBlock:_fn_ (*)=(_fun___objc_anonymous_block_BlockVar_navigateToURLInBackground:resolver:______1) [line 21]\n REMOVE_TEMPS(n$6); [line 21]\n " shape="box"] 7 -> 6 ; -6 [label="6: Return Stmt \n n$0=*&addBlock:_fn_ (*) [line 22]\n n$1=n$0(1:int ,2:int ) [line 22]\n *&return:int =n$1 [line 22]\n REMOVE_TEMPS(n$0,n$1); [line 22]\n NULLIFY(&__objc_anonymous_block_BlockVar_navigateToURLInBackground:resolver:______1,true); [line 22]\n NULLIFY(&addBlock,false); [line 22]\n APPLY_ABSTRACTION; [line 22]\n " shape="box"] +6 [label="6: Return Stmt \n n$0=*&addBlock:_fn_ (*) [line 26]\n n$1=n$0(1:int ,2:int ) [line 26]\n *&return:int =n$1 [line 26]\n REMOVE_TEMPS(n$0,n$1); [line 26]\n NULLIFY(&__objc_anonymous_block_BlockVar_navigateToURLInBackground:resolver:______1,true); [line 26]\n NULLIFY(&addBlock,false); [line 26]\n APPLY_ABSTRACTION; [line 26]\n " shape="box"] 6 -> 5 ; 5 [label="5: Exit BlockVar_navigateToURLInBackground:resolver: \n " color=yellow style=filled] -4 [label="4: Start BlockVar_navigateToURLInBackground:resolver:\nFormals: destination:class NSURL * resolver:struct objc_object *\nLocals: addBlock:_fn_ (*) \n DECLARE_LOCALS(&return,&addBlock); [line 14]\n NULLIFY(&addBlock,false); [line 14]\n NULLIFY(&destination,false); [line 14]\n NULLIFY(&resolver,false); [line 14]\n " color=yellow style=filled] +4 [label="4: Start BlockVar_navigateToURLInBackground:resolver:\nFormals: destination:class NSURL * resolver:struct objc_object *\nLocals: addBlock:_fn_ (*) \n DECLARE_LOCALS(&return,&addBlock); [line 18]\n NULLIFY(&addBlock,false); [line 18]\n NULLIFY(&destination,false); [line 18]\n NULLIFY(&resolver,false); [line 18]\n " color=yellow style=filled] 4 -> 7 ; -3 [label="3: Return Stmt \n *&return:int =5 [line 11]\n APPLY_ABSTRACTION; [line 11]\n " shape="box"] +3 [label="3: Return Stmt \n *&return:int =5 [line 15]\n APPLY_ABSTRACTION; [line 15]\n " shape="box"] 3 -> 2 ; 2 [label="2: Exit BlockVar_test \n " color=yellow style=filled] -1 [label="1: Start BlockVar_test\nFormals: \nLocals: \n DECLARE_LOCALS(&return); [line 10]\n " color=yellow style=filled] +1 [label="1: Start BlockVar_test\nFormals: \nLocals: \n DECLARE_LOCALS(&return); [line 14]\n " color=yellow style=filled] 1 -> 3 ; diff --git a/infer/tests/codetoanalyze/objc/frontend/block/BlockVar.h b/infer/tests/codetoanalyze/objc/frontend/block/BlockVar.h index 2f8a8e559..95d705927 100644 --- a/infer/tests/codetoanalyze/objc/frontend/block/BlockVar.h +++ b/infer/tests/codetoanalyze/objc/frontend/block/BlockVar.h @@ -1,6 +1,10 @@ /* - * Copyright (c) 2014 - Facebook. - * All rights reserved. +* Copyright (c) 2014 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ #import diff --git a/infer/tests/codetoanalyze/objc/frontend/block/BlockVar.m b/infer/tests/codetoanalyze/objc/frontend/block/BlockVar.m index d092314a9..d090df9bb 100644 --- a/infer/tests/codetoanalyze/objc/frontend/block/BlockVar.m +++ b/infer/tests/codetoanalyze/objc/frontend/block/BlockVar.m @@ -1,6 +1,10 @@ /* - * Copyright (c) 2014 - Facebook. - * All rights reserved. +* Copyright (c) 2014 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ #import "BlockVar.h" diff --git a/infer/tests/codetoanalyze/objc/frontend/block/block.dot b/infer/tests/codetoanalyze/objc/frontend/block/block.dot index 0822d44d6..ad5dc54e6 100644 --- a/infer/tests/codetoanalyze/objc/frontend/block/block.dot +++ b/infer/tests/codetoanalyze/objc/frontend/block/block.dot @@ -1,96 +1,96 @@ digraph iCFG { -25 [label="25: Return Stmt \n n$27=_fun_main1(4:int ) [line 47]\n *&return:int =n$27 [line 47]\n REMOVE_TEMPS(n$27); [line 47]\n APPLY_ABSTRACTION; [line 47]\n " shape="box"] +25 [label="25: Return Stmt \n n$27=_fun_main1(4:int ) [line 51]\n *&return:int =n$27 [line 51]\n REMOVE_TEMPS(n$27); [line 51]\n APPLY_ABSTRACTION; [line 51]\n " shape="box"] 25 -> 24 ; 24 [label="24: Exit main \n " color=yellow style=filled] -23 [label="23: Start main\nFormals: \nLocals: \n DECLARE_LOCALS(&return); [line 46]\n " color=yellow style=filled] +23 [label="23: Start main\nFormals: \nLocals: \n DECLARE_LOCALS(&return); [line 50]\n " color=yellow style=filled] 23 -> 25 ; -22 [label="22: DeclStmt \n *&#GB$main1_s:int =3 [line 8]\n " shape="box"] +22 [label="22: DeclStmt \n *&#GB$main1_s:int =3 [line 12]\n " shape="box"] 22 -> 21 ; -21 [label="21: DeclStmt \n *&x:int =7 [line 9]\n " shape="box"] +21 [label="21: DeclStmt \n *&x:int =7 [line 13]\n " shape="box"] 21 -> 20 ; -20 [label="20: BinaryOperatorStmt: Assign \n DECLARE_LOCALS(&__objc_anonymous_block_main1______2); [line 15]\n n$25=_fun___objc_alloc_no_fail(sizeof(class __objc_anonymous_block_main1______2 ):class __objc_anonymous_block_main1______2 *) [line 15]\n *&__objc_anonymous_block_main1______2:class __objc_anonymous_block_main1______2 =n$25 [line 15]\n n$26=*&x:int [line 15]\n *n$25.x:int =n$26 [line 15]\n n$10=*&x:int [line 15]\n *&addblock:_fn_ (*)=(_fun___objc_anonymous_block_main1______2,n$10) [line 15]\n REMOVE_TEMPS(n$25,n$26,n$10); [line 15]\n " shape="box"] +20 [label="20: BinaryOperatorStmt: Assign \n DECLARE_LOCALS(&__objc_anonymous_block_main1______2); [line 19]\n n$25=_fun___objc_alloc_no_fail(sizeof(class __objc_anonymous_block_main1______2 ):class __objc_anonymous_block_main1______2 *) [line 19]\n *&__objc_anonymous_block_main1______2:class __objc_anonymous_block_main1______2 =n$25 [line 19]\n n$26=*&x:int [line 19]\n *n$25.x:int =n$26 [line 19]\n n$10=*&x:int [line 19]\n *&addblock:_fn_ (*)=(_fun___objc_anonymous_block_main1______2,n$10) [line 19]\n REMOVE_TEMPS(n$25,n$26,n$10); [line 19]\n " shape="box"] 20 -> 10 ; -19 [label="19: DeclStmt \n *&bla:int =3 [line 19]\n " shape="box"] +19 [label="19: DeclStmt \n *&bla:int =3 [line 23]\n " shape="box"] 19 -> 18 ; -18 [label="18: BinaryOperatorStmt: Assign \n DECLARE_LOCALS(&__objc_anonymous_block___objc_anonymous_block_main1______2______3); [line 21]\n n$22=_fun___objc_alloc_no_fail(sizeof(class __objc_anonymous_block___objc_anonymous_block_main1______2______3 ):class __objc_anonymous_block___objc_anonymous_block_main1______2______3 *) [line 21]\n *&__objc_anonymous_block___objc_anonymous_block_main1______2______3:class __objc_anonymous_block___objc_anonymous_block_main1______2______3 =n$22 [line 21]\n n$23=*&x:int [line 21]\n n$24=*&bla:int [line 21]\n *n$22.bla:int =n$23 [line 21]\n *n$22.x:int =n$24 [line 21]\n n$16=*&x:int [line 21]\n n$17=*&bla:int [line 21]\n *&addblock2:_fn_ (*)=(_fun___objc_anonymous_block___objc_anonymous_block_main1______2______3,n$16,n$17) [line 21]\n REMOVE_TEMPS(n$22,n$23,n$24,n$16,n$17); [line 21]\n " shape="box"] +18 [label="18: BinaryOperatorStmt: Assign \n DECLARE_LOCALS(&__objc_anonymous_block___objc_anonymous_block_main1______2______3); [line 25]\n n$22=_fun___objc_alloc_no_fail(sizeof(class __objc_anonymous_block___objc_anonymous_block_main1______2______3 ):class __objc_anonymous_block___objc_anonymous_block_main1______2______3 *) [line 25]\n *&__objc_anonymous_block___objc_anonymous_block_main1______2______3:class __objc_anonymous_block___objc_anonymous_block_main1______2______3 =n$22 [line 25]\n n$23=*&x:int [line 25]\n n$24=*&bla:int [line 25]\n *n$22.bla:int =n$23 [line 25]\n *n$22.x:int =n$24 [line 25]\n n$16=*&x:int [line 25]\n n$17=*&bla:int [line 25]\n *&addblock2:_fn_ (*)=(_fun___objc_anonymous_block___objc_anonymous_block_main1______2______3,n$16,n$17) [line 25]\n REMOVE_TEMPS(n$22,n$23,n$24,n$16,n$17); [line 25]\n " shape="box"] 18 -> 14 ; -17 [label="17: Return Stmt \n n$18=*&z:int [line 22]\n n$19=*&#GB$main1_s:int [line 22]\n n$20=*&x:int [line 22]\n n$21=*&bla:int [line 22]\n *&return:int =(((n$18 + n$19) + n$20) + n$21) [line 22]\n REMOVE_TEMPS(n$18,n$19,n$20,n$21); [line 22]\n NULLIFY(&z,false); [line 22]\n APPLY_ABSTRACTION; [line 22]\n " shape="box"] +17 [label="17: Return Stmt \n n$18=*&z:int [line 26]\n n$19=*&#GB$main1_s:int [line 26]\n n$20=*&x:int [line 26]\n n$21=*&bla:int [line 26]\n *&return:int =(((n$18 + n$19) + n$20) + n$21) [line 26]\n REMOVE_TEMPS(n$18,n$19,n$20,n$21); [line 26]\n NULLIFY(&z,false); [line 26]\n APPLY_ABSTRACTION; [line 26]\n " shape="box"] 17 -> 16 ; 16 [label="16: Exit __objc_anonymous_block___objc_anonymous_block_main1______2______3 \n " color=yellow style=filled] -15 [label="15: Start __objc_anonymous_block___objc_anonymous_block_main1______2______3\nFormals: x:int bla:int z:int \nLocals: \nCaptured: x:int bla:int \n DECLARE_LOCALS(&return); [line 21]\n " color=yellow style=filled] +15 [label="15: Start __objc_anonymous_block___objc_anonymous_block_main1______2______3\nFormals: x:int bla:int z:int \nLocals: \nCaptured: x:int bla:int \n DECLARE_LOCALS(&return); [line 25]\n " color=yellow style=filled] 15 -> 17 ; -14 [label="14: BinaryOperatorStmt: Assign \n n$14=*&addblock2:_fn_ (*) [line 25]\n n$15=n$14(1:int ) [line 25]\n *&add2:int =n$15 [line 25]\n REMOVE_TEMPS(n$14,n$15); [line 25]\n NULLIFY(&addblock2,false); [line 25]\n " shape="box"] +14 [label="14: BinaryOperatorStmt: Assign \n n$14=*&addblock2:_fn_ (*) [line 29]\n n$15=n$14(1:int ) [line 29]\n *&add2:int =n$15 [line 29]\n REMOVE_TEMPS(n$14,n$15); [line 29]\n NULLIFY(&addblock2,false); [line 29]\n " shape="box"] 14 -> 13 ; -13 [label="13: Return Stmt \n n$11=*&c:int [line 26]\n n$12=*&add2:int [line 26]\n n$13=*&bla:int [line 26]\n *&return:int =((n$11 + n$12) + n$13) [line 26]\n REMOVE_TEMPS(n$11,n$12,n$13); [line 26]\n NULLIFY(&__objc_anonymous_block___objc_anonymous_block_main1______2______3,true); [line 26]\n NULLIFY(&add2,false); [line 26]\n NULLIFY(&c,false); [line 26]\n APPLY_ABSTRACTION; [line 26]\n " shape="box"] +13 [label="13: Return Stmt \n n$11=*&c:int [line 30]\n n$12=*&add2:int [line 30]\n n$13=*&bla:int [line 30]\n *&return:int =((n$11 + n$12) + n$13) [line 30]\n REMOVE_TEMPS(n$11,n$12,n$13); [line 30]\n NULLIFY(&__objc_anonymous_block___objc_anonymous_block_main1______2______3,true); [line 30]\n NULLIFY(&add2,false); [line 30]\n NULLIFY(&c,false); [line 30]\n APPLY_ABSTRACTION; [line 30]\n " shape="box"] 13 -> 12 ; 12 [label="12: Exit __objc_anonymous_block_main1______2 \n " color=yellow style=filled] -11 [label="11: Start __objc_anonymous_block_main1______2\nFormals: x:int c:int d:int \nLocals: addblock2:_fn_ (*) add2:int bla:int \nCaptured: x:int \n DECLARE_LOCALS(&return,&addblock2,&add2,&bla); [line 15]\n NULLIFY(&add2,false); [line 15]\n NULLIFY(&addblock2,false); [line 15]\n NULLIFY(&d,false); [line 15]\n " color=yellow style=filled] +11 [label="11: Start __objc_anonymous_block_main1______2\nFormals: x:int c:int d:int \nLocals: addblock2:_fn_ (*) add2:int bla:int \nCaptured: x:int \n DECLARE_LOCALS(&return,&addblock2,&add2,&bla); [line 19]\n NULLIFY(&add2,false); [line 19]\n NULLIFY(&addblock2,false); [line 19]\n NULLIFY(&d,false); [line 19]\n " color=yellow style=filled] 11 -> 19 ; -10 [label="10: BinaryOperatorStmt: Assign \n n$8=*&addblock:_fn_ (*) [line 29]\n n$9=n$8(1:int ,2:int ) [line 29]\n *&add1:int =n$9 [line 29]\n REMOVE_TEMPS(n$8,n$9); [line 29]\n NULLIFY(&addblock,false); [line 29]\n " shape="box"] +10 [label="10: BinaryOperatorStmt: Assign \n n$8=*&addblock:_fn_ (*) [line 33]\n n$9=n$8(1:int ,2:int ) [line 33]\n *&add1:int =n$9 [line 33]\n REMOVE_TEMPS(n$8,n$9); [line 33]\n NULLIFY(&addblock,false); [line 33]\n " shape="box"] 10 -> 9 ; -9 [label="9: BinaryOperatorStmt: Assign \n DECLARE_LOCALS(&__objc_anonymous_block_main1______1); [line 32]\n n$7=_fun___objc_alloc_no_fail(sizeof(class __objc_anonymous_block_main1______1 ):class __objc_anonymous_block_main1______1 *) [line 32]\n *&__objc_anonymous_block_main1______1:class __objc_anonymous_block_main1______1 =n$7 [line 32]\n *&addblock:_fn_ (*)=(_fun___objc_anonymous_block_main1______1) [line 32]\n REMOVE_TEMPS(n$7); [line 32]\n " shape="box"] +9 [label="9: BinaryOperatorStmt: Assign \n DECLARE_LOCALS(&__objc_anonymous_block_main1______1); [line 36]\n n$7=_fun___objc_alloc_no_fail(sizeof(class __objc_anonymous_block_main1______1 ):class __objc_anonymous_block_main1______1 *) [line 36]\n *&__objc_anonymous_block_main1______1:class __objc_anonymous_block_main1______1 =n$7 [line 36]\n *&addblock:_fn_ (*)=(_fun___objc_anonymous_block_main1______1) [line 36]\n REMOVE_TEMPS(n$7); [line 36]\n " shape="box"] 9 -> 5 ; -8 [label="8: Return Stmt \n n$5=*&e:int [line 33]\n n$6=*&#GB$main1_s:int [line 33]\n *&return:int =(n$5 - n$6) [line 33]\n REMOVE_TEMPS(n$5,n$6); [line 33]\n NULLIFY(&e,false); [line 33]\n APPLY_ABSTRACTION; [line 33]\n " shape="box"] +8 [label="8: Return Stmt \n n$5=*&e:int [line 37]\n n$6=*&#GB$main1_s:int [line 37]\n *&return:int =(n$5 - n$6) [line 37]\n REMOVE_TEMPS(n$5,n$6); [line 37]\n NULLIFY(&e,false); [line 37]\n APPLY_ABSTRACTION; [line 37]\n " shape="box"] 8 -> 7 ; 7 [label="7: Exit __objc_anonymous_block_main1______1 \n " color=yellow style=filled] -6 [label="6: Start __objc_anonymous_block_main1______1\nFormals: e:int f:int \nLocals: \n DECLARE_LOCALS(&return); [line 32]\n NULLIFY(&f,false); [line 32]\n " color=yellow style=filled] +6 [label="6: Start __objc_anonymous_block_main1______1\nFormals: e:int f:int \nLocals: \n DECLARE_LOCALS(&return); [line 36]\n NULLIFY(&f,false); [line 36]\n " color=yellow style=filled] 6 -> 8 ; -5 [label="5: BinaryOperatorStmt: Assign \n n$3=*&addblock:_fn_ (*) [line 37]\n n$4=n$3(3:int ,2:int ) [line 37]\n *&add2:int =n$4 [line 37]\n REMOVE_TEMPS(n$3,n$4); [line 37]\n NULLIFY(&addblock,false); [line 37]\n " shape="box"] +5 [label="5: BinaryOperatorStmt: Assign \n n$3=*&addblock:_fn_ (*) [line 41]\n n$4=n$3(3:int ,2:int ) [line 41]\n *&add2:int =n$4 [line 41]\n REMOVE_TEMPS(n$3,n$4); [line 41]\n NULLIFY(&addblock,false); [line 41]\n " shape="box"] 5 -> 4 ; -4 [label="4: BinaryOperatorStmt: Assign \n n$1=*&add1:int [line 40]\n n$2=*&add2:int [line 40]\n *&y:int =(n$1 / n$2) [line 40]\n REMOVE_TEMPS(n$1,n$2); [line 40]\n NULLIFY(&add1,false); [line 40]\n NULLIFY(&add2,false); [line 40]\n " shape="box"] +4 [label="4: BinaryOperatorStmt: Assign \n n$1=*&add1:int [line 44]\n n$2=*&add2:int [line 44]\n *&y:int =(n$1 / n$2) [line 44]\n REMOVE_TEMPS(n$1,n$2); [line 44]\n NULLIFY(&add1,false); [line 44]\n NULLIFY(&add2,false); [line 44]\n " shape="box"] 4 -> 3 ; -3 [label="3: Return Stmt \n n$0=*&y:int [line 42]\n *&return:int =n$0 [line 42]\n REMOVE_TEMPS(n$0); [line 42]\n NULLIFY(&__objc_anonymous_block_main1______1,true); [line 42]\n NULLIFY(&__objc_anonymous_block_main1______2,true); [line 42]\n NULLIFY(&y,false); [line 42]\n APPLY_ABSTRACTION; [line 42]\n " shape="box"] +3 [label="3: Return Stmt \n n$0=*&y:int [line 46]\n *&return:int =n$0 [line 46]\n REMOVE_TEMPS(n$0); [line 46]\n NULLIFY(&__objc_anonymous_block_main1______1,true); [line 46]\n NULLIFY(&__objc_anonymous_block_main1______2,true); [line 46]\n NULLIFY(&y,false); [line 46]\n APPLY_ABSTRACTION; [line 46]\n " shape="box"] 3 -> 2 ; 2 [label="2: Exit main1 \n " color=yellow style=filled] -1 [label="1: Start main1\nFormals: y:int \nLocals: x:int add1:int add2:int addblock:_fn_ (*) \n DECLARE_LOCALS(&return,&x,&add1,&add2,&addblock); [line 6]\n NULLIFY(&add1,false); [line 6]\n NULLIFY(&add2,false); [line 6]\n NULLIFY(&addblock,false); [line 6]\n NULLIFY(&y,false); [line 6]\n " color=yellow style=filled] +1 [label="1: Start main1\nFormals: y:int \nLocals: x:int add1:int add2:int addblock:_fn_ (*) \n DECLARE_LOCALS(&return,&x,&add1,&add2,&addblock); [line 10]\n NULLIFY(&add1,false); [line 10]\n NULLIFY(&add2,false); [line 10]\n NULLIFY(&addblock,false); [line 10]\n NULLIFY(&y,false); [line 10]\n " color=yellow style=filled] 1 -> 22 ; diff --git a/infer/tests/codetoanalyze/objc/frontend/block/block.m b/infer/tests/codetoanalyze/objc/frontend/block/block.m index f07a09662..8a65b34e3 100644 --- a/infer/tests/codetoanalyze/objc/frontend/block/block.m +++ b/infer/tests/codetoanalyze/objc/frontend/block/block.m @@ -1,6 +1,10 @@ /* - * Copyright (c) 2014 - Facebook. - * All rights reserved. +* Copyright (c) 2014 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ int main1 (int y) { diff --git a/infer/tests/codetoanalyze/objc/frontend/block/block_no_args.dot b/infer/tests/codetoanalyze/objc/frontend/block/block_no_args.dot index 1fb102080..8eec37c7f 100644 --- a/infer/tests/codetoanalyze/objc/frontend/block/block_no_args.dot +++ b/infer/tests/codetoanalyze/objc/frontend/block/block_no_args.dot @@ -1,39 +1,39 @@ digraph iCFG { -10 [label="10: BinaryOperatorStmt: Assign \n *&#GB$g:int =7 [line 19]\n " shape="box"] +10 [label="10: BinaryOperatorStmt: Assign \n *&#GB$g:int =7 [line 23]\n " shape="box"] 10 -> 9 ; -9 [label="9: DeclStmt \n *&z:int =3 [line 21]\n " shape="box"] +9 [label="9: DeclStmt \n *&z:int =3 [line 25]\n " shape="box"] 9 -> 8 ; -8 [label="8: BinaryOperatorStmt: Assign \n DECLARE_LOCALS(&__objc_anonymous_block_My_manager_my_mehtod______1); [line 22]\n n$4=_fun___objc_alloc_no_fail(sizeof(class __objc_anonymous_block_My_manager_my_mehtod______1 ):class __objc_anonymous_block_My_manager_my_mehtod______1 *) [line 22]\n *&__objc_anonymous_block_My_manager_my_mehtod______1:class __objc_anonymous_block_My_manager_my_mehtod______1 =n$4 [line 22]\n n$5=*&z:int [line 22]\n *n$4.z:int =n$5 [line 22]\n n$2=*&z:int [line 22]\n *&b:_fn_ (*)=(_fun___objc_anonymous_block_My_manager_my_mehtod______1,n$2) [line 22]\n REMOVE_TEMPS(n$4,n$5,n$2); [line 22]\n " shape="box"] +8 [label="8: BinaryOperatorStmt: Assign \n DECLARE_LOCALS(&__objc_anonymous_block_My_manager_my_mehtod______1); [line 26]\n n$4=_fun___objc_alloc_no_fail(sizeof(class __objc_anonymous_block_My_manager_my_mehtod______1 ):class __objc_anonymous_block_My_manager_my_mehtod______1 *) [line 26]\n *&__objc_anonymous_block_My_manager_my_mehtod______1:class __objc_anonymous_block_My_manager_my_mehtod______1 =n$4 [line 26]\n n$5=*&z:int [line 26]\n *n$4.z:int =n$5 [line 26]\n n$2=*&z:int [line 26]\n *&b:_fn_ (*)=(_fun___objc_anonymous_block_My_manager_my_mehtod______1,n$2) [line 26]\n REMOVE_TEMPS(n$4,n$5,n$2); [line 26]\n " shape="box"] 8 -> 4 ; -7 [label="7: BinaryOperatorStmt: Assign \n n$3=*&z:int [line 23]\n *&#GB$g:int =(n$3 + 3) [line 23]\n REMOVE_TEMPS(n$3); [line 23]\n APPLY_ABSTRACTION; [line 23]\n " shape="box"] +7 [label="7: BinaryOperatorStmt: Assign \n n$3=*&z:int [line 27]\n *&#GB$g:int =(n$3 + 3) [line 27]\n REMOVE_TEMPS(n$3); [line 27]\n APPLY_ABSTRACTION; [line 27]\n " shape="box"] 7 -> 6 ; 6 [label="6: Exit __objc_anonymous_block_My_manager_my_mehtod______1 \n " color=yellow style=filled] -5 [label="5: Start __objc_anonymous_block_My_manager_my_mehtod______1\nFormals: z:int \nLocals: \nCaptured: z:int \n DECLARE_LOCALS(&return); [line 22]\n " color=yellow style=filled] +5 [label="5: Start __objc_anonymous_block_My_manager_my_mehtod______1\nFormals: z:int \nLocals: \nCaptured: z:int \n DECLARE_LOCALS(&return); [line 26]\n " color=yellow style=filled] 5 -> 7 ; -4 [label="4: Call n$1 \n n$1=*&b:_fn_ (*) [line 25]\n n$1() [line 25]\n REMOVE_TEMPS(n$1); [line 25]\n NULLIFY(&b,false); [line 25]\n " shape="box"] +4 [label="4: Call n$1 \n n$1=*&b:_fn_ (*) [line 29]\n n$1() [line 29]\n REMOVE_TEMPS(n$1); [line 29]\n NULLIFY(&b,false); [line 29]\n " shape="box"] 4 -> 3 ; -3 [label="3: Return Stmt \n n$0=*&z:int [line 26]\n *&return:int =n$0 [line 26]\n REMOVE_TEMPS(n$0); [line 26]\n NULLIFY(&__objc_anonymous_block_My_manager_my_mehtod______1,true); [line 26]\n APPLY_ABSTRACTION; [line 26]\n " shape="box"] +3 [label="3: Return Stmt \n n$0=*&z:int [line 30]\n *&return:int =n$0 [line 30]\n REMOVE_TEMPS(n$0); [line 30]\n NULLIFY(&__objc_anonymous_block_My_manager_my_mehtod______1,true); [line 30]\n APPLY_ABSTRACTION; [line 30]\n " shape="box"] 3 -> 2 ; 2 [label="2: Exit My_manager_my_mehtod \n " color=yellow style=filled] -1 [label="1: Start My_manager_my_mehtod\nFormals: self:class My_manager *\nLocals: b:_fn_ (*) z:int \n DECLARE_LOCALS(&return,&b,&z); [line 17]\n NULLIFY(&b,false); [line 17]\n NULLIFY(&self,false); [line 17]\n " color=yellow style=filled] +1 [label="1: Start My_manager_my_mehtod\nFormals: self:class My_manager *\nLocals: b:_fn_ (*) z:int \n DECLARE_LOCALS(&return,&b,&z); [line 21]\n NULLIFY(&b,false); [line 21]\n NULLIFY(&self,false); [line 21]\n " color=yellow style=filled] 1 -> 10 ; diff --git a/infer/tests/codetoanalyze/objc/frontend/block/block_no_args.m b/infer/tests/codetoanalyze/objc/frontend/block/block_no_args.m index 7baf20dc3..5d0615cb6 100644 --- a/infer/tests/codetoanalyze/objc/frontend/block/block_no_args.m +++ b/infer/tests/codetoanalyze/objc/frontend/block/block_no_args.m @@ -1,6 +1,10 @@ /* - * Copyright (c) 2014 - Facebook. - * All rights reserved. +* Copyright (c) 2014 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ #import diff --git a/infer/tests/codetoanalyze/objc/frontend/block/block_release.dot b/infer/tests/codetoanalyze/objc/frontend/block/block_release.dot index 82f01da13..833021ca9 100644 --- a/infer/tests/codetoanalyze/objc/frontend/block/block_release.dot +++ b/infer/tests/codetoanalyze/objc/frontend/block/block_release.dot @@ -1,33 +1,33 @@ digraph iCFG { -19 [label="19: BinaryOperatorStmt: Assign \n *&#GB$g:int =7 [line 20]\n " shape="box"] +19 [label="19: BinaryOperatorStmt: Assign \n *&#GB$g:int =7 [line 24]\n " shape="box"] 19 -> 18 ; -18 [label="18: DeclStmt \n *&z:int =3 [line 22]\n " shape="box"] +18 [label="18: DeclStmt \n *&z:int =3 [line 26]\n " shape="box"] 18 -> 17 ; -17 [label="17: DeclStmt \n n$12=_fun_CGBitmapContextCreate(0:void *,0:unsigned long ,0:unsigned long ,8:unsigned long ,0:unsigned long ,0:struct CGColorSpace *,0:enum CGBitmapInfo ) [line 23]\n *&context:struct CGContext *=n$12 [line 23]\n REMOVE_TEMPS(n$12); [line 23]\n " shape="box"] +17 [label="17: DeclStmt \n n$12=_fun_CGBitmapContextCreate(0:void *,0:unsigned long ,0:unsigned long ,8:unsigned long ,0:unsigned long ,0:struct CGColorSpace *,0:enum CGBitmapInfo ) [line 27]\n *&context:struct CGContext *=n$12 [line 27]\n REMOVE_TEMPS(n$12); [line 27]\n " shape="box"] 17 -> 16 ; -16 [label="16: DeclStmt \n n$10=*&context:struct CGContext * [line 24]\n n$11=_fun_CGBitmapContextCreateImage(n$10:struct CGContext *) [line 24]\n *&newImage:struct CGImage *=n$11 [line 24]\n REMOVE_TEMPS(n$10,n$11); [line 24]\n " shape="box"] +16 [label="16: DeclStmt \n n$10=*&context:struct CGContext * [line 28]\n n$11=_fun_CGBitmapContextCreateImage(n$10:struct CGContext *) [line 28]\n *&newImage:struct CGImage *=n$11 [line 28]\n REMOVE_TEMPS(n$10,n$11); [line 28]\n " shape="box"] 16 -> 15 ; -15 [label="15: BinaryOperatorStmt: Assign \n DECLARE_LOCALS(&__objc_anonymous_block_My_manager_my_mehtod______1); [line 25]\n n$8=_fun___objc_alloc_no_fail(sizeof(class __objc_anonymous_block_My_manager_my_mehtod______1 ):class __objc_anonymous_block_My_manager_my_mehtod______1 *) [line 25]\n *&__objc_anonymous_block_My_manager_my_mehtod______1:class __objc_anonymous_block_My_manager_my_mehtod______1 =n$8 [line 25]\n n$9=*&newImage:struct CGImage * [line 25]\n *n$8.newImage:struct CGImage *=n$9 [line 25]\n n$5=*&newImage:struct CGImage * [line 25]\n *&b:_fn_ (*)=(_fun___objc_anonymous_block_My_manager_my_mehtod______1,n$5) [line 25]\n REMOVE_TEMPS(n$8,n$9,n$5); [line 25]\n " shape="box"] +15 [label="15: BinaryOperatorStmt: Assign \n DECLARE_LOCALS(&__objc_anonymous_block_My_manager_my_mehtod______1); [line 29]\n n$8=_fun___objc_alloc_no_fail(sizeof(class __objc_anonymous_block_My_manager_my_mehtod______1 ):class __objc_anonymous_block_My_manager_my_mehtod______1 *) [line 29]\n *&__objc_anonymous_block_My_manager_my_mehtod______1:class __objc_anonymous_block_My_manager_my_mehtod______1 =n$8 [line 29]\n n$9=*&newImage:struct CGImage * [line 29]\n *n$8.newImage:struct CGImage *=n$9 [line 29]\n n$5=*&newImage:struct CGImage * [line 29]\n *&b:_fn_ (*)=(_fun___objc_anonymous_block_My_manager_my_mehtod______1,n$5) [line 29]\n REMOVE_TEMPS(n$8,n$9,n$5); [line 29]\n " shape="box"] 15 -> 8 ; -14 [label="14: Call _fun_CGImageRelease \n n$7=*&newImage:struct CGImage * [line 26]\n _fun_CGImageRelease(n$7:struct CGImage *) [line 26]\n REMOVE_TEMPS(n$7); [line 26]\n APPLY_ABSTRACTION; [line 26]\n " shape="box"] +14 [label="14: Call _fun_CGImageRelease \n n$7=*&newImage:struct CGImage * [line 30]\n _fun_CGImageRelease(n$7:struct CGImage *) [line 30]\n REMOVE_TEMPS(n$7); [line 30]\n APPLY_ABSTRACTION; [line 30]\n " shape="box"] 14 -> 11 ; -13 [label="13: Prune (false branch) \n n$6=*&newImage:struct CGImage * [line 26]\n PRUNE((n$6 == 0), false); [line 26]\n REMOVE_TEMPS(n$6); [line 26]\n APPLY_ABSTRACTION; [line 26]\n " shape="invhouse"] +13 [label="13: Prune (false branch) \n n$6=*&newImage:struct CGImage * [line 30]\n PRUNE((n$6 == 0), false); [line 30]\n REMOVE_TEMPS(n$6); [line 30]\n APPLY_ABSTRACTION; [line 30]\n " shape="invhouse"] 13 -> 11 ; -12 [label="12: Prune (true branch) \n n$6=*&newImage:struct CGImage * [line 26]\n PRUNE((n$6 != 0), true); [line 26]\n REMOVE_TEMPS(n$6); [line 26]\n " shape="invhouse"] +12 [label="12: Prune (true branch) \n n$6=*&newImage:struct CGImage * [line 30]\n PRUNE((n$6 != 0), true); [line 30]\n REMOVE_TEMPS(n$6); [line 30]\n " shape="invhouse"] 12 -> 14 ; @@ -38,25 +38,25 @@ digraph iCFG { 10 [label="10: Exit __objc_anonymous_block_My_manager_my_mehtod______1 \n " color=yellow style=filled] -9 [label="9: Start __objc_anonymous_block_My_manager_my_mehtod______1\nFormals: newImage:struct CGImage * a:int \nLocals: \nCaptured: newImage:struct CGImage * \n DECLARE_LOCALS(&return); [line 25]\n NULLIFY(&a,false); [line 25]\n " color=yellow style=filled] +9 [label="9: Start __objc_anonymous_block_My_manager_my_mehtod______1\nFormals: newImage:struct CGImage * a:int \nLocals: \nCaptured: newImage:struct CGImage * \n DECLARE_LOCALS(&return); [line 29]\n NULLIFY(&a,false); [line 29]\n " color=yellow style=filled] 9 -> 12 ; 9 -> 13 ; -8 [label="8: Call n$3 \n n$3=*&b:_fn_ (*) [line 28]\n n$4=*&z:int [line 28]\n n$3(n$4:int ) [line 28]\n REMOVE_TEMPS(n$3,n$4); [line 28]\n NULLIFY(&b,false); [line 28]\n " shape="box"] +8 [label="8: Call n$3 \n n$3=*&b:_fn_ (*) [line 32]\n n$4=*&z:int [line 32]\n n$3(n$4:int ) [line 32]\n REMOVE_TEMPS(n$3,n$4); [line 32]\n NULLIFY(&b,false); [line 32]\n " shape="box"] 8 -> 5 ; 8 -> 6 ; -7 [label="7: Call _fun_CGContextRelease \n n$2=*&context:struct CGContext * [line 29]\n _fun_CGContextRelease(n$2:struct CGContext *) [line 29]\n REMOVE_TEMPS(n$2); [line 29]\n NULLIFY(&context,false); [line 29]\n APPLY_ABSTRACTION; [line 29]\n " shape="box"] +7 [label="7: Call _fun_CGContextRelease \n n$2=*&context:struct CGContext * [line 33]\n _fun_CGContextRelease(n$2:struct CGContext *) [line 33]\n REMOVE_TEMPS(n$2); [line 33]\n NULLIFY(&context,false); [line 33]\n APPLY_ABSTRACTION; [line 33]\n " shape="box"] 7 -> 4 ; -6 [label="6: Prune (false branch) \n n$1=*&context:struct CGContext * [line 29]\n PRUNE((n$1 == 0), false); [line 29]\n REMOVE_TEMPS(n$1); [line 29]\n APPLY_ABSTRACTION; [line 29]\n " shape="invhouse"] +6 [label="6: Prune (false branch) \n n$1=*&context:struct CGContext * [line 33]\n PRUNE((n$1 == 0), false); [line 33]\n REMOVE_TEMPS(n$1); [line 33]\n APPLY_ABSTRACTION; [line 33]\n " shape="invhouse"] 6 -> 4 ; -5 [label="5: Prune (true branch) \n n$1=*&context:struct CGContext * [line 29]\n PRUNE((n$1 != 0), true); [line 29]\n REMOVE_TEMPS(n$1); [line 29]\n " shape="invhouse"] +5 [label="5: Prune (true branch) \n n$1=*&context:struct CGContext * [line 33]\n PRUNE((n$1 != 0), true); [line 33]\n REMOVE_TEMPS(n$1); [line 33]\n " shape="invhouse"] 5 -> 7 ; @@ -64,14 +64,14 @@ digraph iCFG { 4 -> 3 ; -3 [label="3: Return Stmt \n NULLIFY(&context,false); [line 30]\n n$0=*&z:int [line 30]\n *&return:int =n$0 [line 30]\n REMOVE_TEMPS(n$0); [line 30]\n NULLIFY(&__objc_anonymous_block_My_manager_my_mehtod______1,true); [line 30]\n NULLIFY(&z,false); [line 30]\n APPLY_ABSTRACTION; [line 30]\n " shape="box"] +3 [label="3: Return Stmt \n NULLIFY(&context,false); [line 34]\n n$0=*&z:int [line 34]\n *&return:int =n$0 [line 34]\n REMOVE_TEMPS(n$0); [line 34]\n NULLIFY(&__objc_anonymous_block_My_manager_my_mehtod______1,true); [line 34]\n NULLIFY(&z,false); [line 34]\n APPLY_ABSTRACTION; [line 34]\n " shape="box"] 3 -> 2 ; 2 [label="2: Exit My_manager_my_mehtod \n " color=yellow style=filled] -1 [label="1: Start My_manager_my_mehtod\nFormals: self:class My_manager *\nLocals: b:_fn_ (*) z:int context:struct CGContext * newImage:struct CGImage * \n DECLARE_LOCALS(&return,&b,&z,&context,&newImage); [line 18]\n NULLIFY(&b,false); [line 18]\n NULLIFY(&context,false); [line 18]\n NULLIFY(&self,false); [line 18]\n NULLIFY(&z,false); [line 18]\n " color=yellow style=filled] +1 [label="1: Start My_manager_my_mehtod\nFormals: self:class My_manager *\nLocals: b:_fn_ (*) z:int context:struct CGContext * newImage:struct CGImage * \n DECLARE_LOCALS(&return,&b,&z,&context,&newImage); [line 22]\n NULLIFY(&b,false); [line 22]\n NULLIFY(&context,false); [line 22]\n NULLIFY(&self,false); [line 22]\n NULLIFY(&z,false); [line 22]\n " color=yellow style=filled] 1 -> 19 ; diff --git a/infer/tests/codetoanalyze/objc/frontend/block/block_release.m b/infer/tests/codetoanalyze/objc/frontend/block/block_release.m index 8b6f34c67..c7179d3f9 100644 --- a/infer/tests/codetoanalyze/objc/frontend/block/block_release.m +++ b/infer/tests/codetoanalyze/objc/frontend/block/block_release.m @@ -1,6 +1,10 @@ /* - * Copyright (c) 2014 - Facebook. - * All rights reserved. +* Copyright (c) 2014 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ #import diff --git a/infer/tests/codetoanalyze/objc/frontend/block/dispatch.dot b/infer/tests/codetoanalyze/objc/frontend/block/dispatch.dot index aa025122b..ddfd7535d 100644 --- a/infer/tests/codetoanalyze/objc/frontend/block/dispatch.dot +++ b/infer/tests/codetoanalyze/objc/frontend/block/dispatch.dot @@ -1,24 +1,24 @@ digraph iCFG { -27 [label="27: DeclStmt \n n$18=_fun_A_sharedInstance() [line 46]\n *&b:class A *=n$18 [line 46]\n REMOVE_TEMPS(n$18); [line 46]\n " shape="box"] +27 [label="27: DeclStmt \n n$18=_fun_A_sharedInstance() [line 50]\n *&b:class A *=n$18 [line 50]\n REMOVE_TEMPS(n$18); [line 50]\n " shape="box"] 27 -> 26 ; -26 [label="26: Message Call: setX: \n n$17=*&b:class A * [line 47]\n _fun_A_setX:(n$17:class A *,17:int ) virtual [line 47]\n REMOVE_TEMPS(n$17); [line 47]\n NULLIFY(&b,false); [line 47]\n " shape="box"] +26 [label="26: Message Call: setX: \n n$17=*&b:class A * [line 51]\n _fun_A_setX:(n$17:class A *,17:int ) virtual [line 51]\n REMOVE_TEMPS(n$17); [line 51]\n NULLIFY(&b,false); [line 51]\n " shape="box"] 26 -> 25 ; -25 [label="25: Return Stmt \n *&return:int =0 [line 48]\n APPLY_ABSTRACTION; [line 48]\n " shape="box"] +25 [label="25: Return Stmt \n *&return:int =0 [line 52]\n APPLY_ABSTRACTION; [line 52]\n " shape="box"] 25 -> 24 ; 24 [label="24: Exit main \n " color=yellow style=filled] -23 [label="23: Start main\nFormals: \nLocals: b:class A * \n DECLARE_LOCALS(&return,&b); [line 45]\n NULLIFY(&b,false); [line 45]\n " color=yellow style=filled] +23 [label="23: Start main\nFormals: \nLocals: b:class A * \n DECLARE_LOCALS(&return,&b); [line 49]\n NULLIFY(&b,false); [line 49]\n " color=yellow style=filled] 23 -> 27 ; -22 [label="22: BinaryOperatorStmt: Assign \n n$15=*&self:class A * [line 10]\n n$16=*&x:int [line 10]\n *n$15._x:int =n$16 [line -1]\n REMOVE_TEMPS(n$15,n$16); [line -1]\n NULLIFY(&self,false); [line -1]\n NULLIFY(&x,false); [line -1]\n APPLY_ABSTRACTION; [line -1]\n " shape="box"] +22 [label="22: BinaryOperatorStmt: Assign \n n$15=*&self:class A * [line 14]\n n$16=*&x:int [line 14]\n *n$15._x:int =n$16 [line -1]\n REMOVE_TEMPS(n$15,n$16); [line -1]\n NULLIFY(&self,false); [line -1]\n NULLIFY(&x,false); [line -1]\n APPLY_ABSTRACTION; [line -1]\n " shape="box"] 22 -> 21 ; @@ -40,63 +40,63 @@ digraph iCFG { 17 -> 19 ; -16 [label="16: BinaryOperatorStmt: Assign \n n$11=_fun___objc_alloc_no_fail(sizeof(class A ):class A *) [line 37]\n n$9=_fun_A_init(n$11:class A *) virtual [line 37]\n *&#GB$A_trans_SI_sharedInstance:struct objc_object *=n$9 [line 37]\n REMOVE_TEMPS(n$9,n$11); [line 37]\n APPLY_ABSTRACTION; [line 37]\n " shape="box"] +16 [label="16: BinaryOperatorStmt: Assign \n n$11=_fun___objc_alloc_no_fail(sizeof(class A ):class A *) [line 41]\n n$9=_fun_A_init(n$11:class A *) virtual [line 41]\n *&#GB$A_trans_SI_sharedInstance:struct objc_object *=n$9 [line 41]\n REMOVE_TEMPS(n$9,n$11); [line 41]\n APPLY_ABSTRACTION; [line 41]\n " shape="box"] 16 -> 15 ; 15 [label="15: Exit __objc_anonymous_block_A_trans_SI______2 \n " color=yellow style=filled] -14 [label="14: Start __objc_anonymous_block_A_trans_SI______2\nFormals: \nLocals: \n DECLARE_LOCALS(&return); [line 36]\n " color=yellow style=filled] +14 [label="14: Start __objc_anonymous_block_A_trans_SI______2\nFormals: \nLocals: \n DECLARE_LOCALS(&return); [line 40]\n " color=yellow style=filled] 14 -> 16 ; -13 [label="13: DeclStmt \n DECLARE_LOCALS(&__objc_anonymous_block_A_trans_SI______2); [line 36]\n n$12=_fun___objc_alloc_no_fail(sizeof(class __objc_anonymous_block_A_trans_SI______2 ):class __objc_anonymous_block_A_trans_SI______2 *) [line 36]\n *&__objc_anonymous_block_A_trans_SI______2:class __objc_anonymous_block_A_trans_SI______2 =n$12 [line 36]\n *&dummy_block:_fn_ (*)=(_fun___objc_anonymous_block_A_trans_SI______2) [line 36]\n REMOVE_TEMPS(n$12); [line 36]\n " shape="box"] +13 [label="13: DeclStmt \n DECLARE_LOCALS(&__objc_anonymous_block_A_trans_SI______2); [line 40]\n n$12=_fun___objc_alloc_no_fail(sizeof(class __objc_anonymous_block_A_trans_SI______2 ):class __objc_anonymous_block_A_trans_SI______2 *) [line 40]\n *&__objc_anonymous_block_A_trans_SI______2:class __objc_anonymous_block_A_trans_SI______2 =n$12 [line 40]\n *&dummy_block:_fn_ (*)=(_fun___objc_anonymous_block_A_trans_SI______2) [line 40]\n REMOVE_TEMPS(n$12); [line 40]\n " shape="box"] 13 -> 12 ; -12 [label="12: Call n$8 \n n$8=*&dummy_block:_fn_ (*) [line 39]\n n$8() [line 39]\n REMOVE_TEMPS(n$8); [line 39]\n NULLIFY(&dummy_block,false); [line 39]\n " shape="box"] +12 [label="12: Call n$8 \n n$8=*&dummy_block:_fn_ (*) [line 43]\n n$8() [line 43]\n REMOVE_TEMPS(n$8); [line 43]\n NULLIFY(&dummy_block,false); [line 43]\n " shape="box"] 12 -> 11 ; -11 [label="11: Return Stmt \n n$7=*&#GB$A_trans_SI_sharedInstance:struct objc_object * [line 40]\n *&return:struct objc_object *=n$7 [line 40]\n REMOVE_TEMPS(n$7); [line 40]\n NULLIFY(&__objc_anonymous_block_A_trans_SI______2,true); [line 40]\n APPLY_ABSTRACTION; [line 40]\n " shape="box"] +11 [label="11: Return Stmt \n n$7=*&#GB$A_trans_SI_sharedInstance:struct objc_object * [line 44]\n *&return:struct objc_object *=n$7 [line 44]\n REMOVE_TEMPS(n$7); [line 44]\n NULLIFY(&__objc_anonymous_block_A_trans_SI______2,true); [line 44]\n APPLY_ABSTRACTION; [line 44]\n " shape="box"] 11 -> 10 ; 10 [label="10: Exit A_trans_SI \n " color=yellow style=filled] -9 [label="9: Start A_trans_SI\nFormals: \nLocals: dummy_block:_fn_ (*) \n DECLARE_LOCALS(&return,&dummy_block); [line 32]\n NULLIFY(&dummy_block,false); [line 32]\n " color=yellow style=filled] +9 [label="9: Start A_trans_SI\nFormals: \nLocals: dummy_block:_fn_ (*) \n DECLARE_LOCALS(&return,&dummy_block); [line 36]\n NULLIFY(&dummy_block,false); [line 36]\n " color=yellow style=filled] 9 -> 13 ; -8 [label="8: BinaryOperatorStmt: Assign \n n$5=_fun___objc_alloc_no_fail(sizeof(class A ):class A *) [line 25]\n n$3=_fun_A_init(n$5:class A *) virtual [line 25]\n *&#GB$A_sharedInstance_sharedInstance:struct objc_object *=n$3 [line 25]\n REMOVE_TEMPS(n$3,n$5); [line 25]\n APPLY_ABSTRACTION; [line 25]\n " shape="box"] +8 [label="8: BinaryOperatorStmt: Assign \n n$5=_fun___objc_alloc_no_fail(sizeof(class A ):class A *) [line 29]\n n$3=_fun_A_init(n$5:class A *) virtual [line 29]\n *&#GB$A_sharedInstance_sharedInstance:struct objc_object *=n$3 [line 29]\n REMOVE_TEMPS(n$3,n$5); [line 29]\n APPLY_ABSTRACTION; [line 29]\n " shape="box"] 8 -> 7 ; 7 [label="7: Exit __objc_anonymous_block_A_sharedInstance______1 \n " color=yellow style=filled] -6 [label="6: Start __objc_anonymous_block_A_sharedInstance______1\nFormals: \nLocals: \n DECLARE_LOCALS(&return); [line 24]\n " color=yellow style=filled] +6 [label="6: Start __objc_anonymous_block_A_sharedInstance______1\nFormals: \nLocals: \n DECLARE_LOCALS(&return); [line 28]\n " color=yellow style=filled] 6 -> 8 ; -5 [label="5: DeclStmt \n DECLARE_LOCALS(&infer___objc_anonymous_block_A_sharedInstance______1); [line 26]\n DECLARE_LOCALS(&__objc_anonymous_block_A_sharedInstance______1); [line 24]\n n$6=_fun___objc_alloc_no_fail(sizeof(class __objc_anonymous_block_A_sharedInstance______1 ):class __objc_anonymous_block_A_sharedInstance______1 *) [line 24]\n *&__objc_anonymous_block_A_sharedInstance______1:class __objc_anonymous_block_A_sharedInstance______1 =n$6 [line 24]\n *&infer___objc_anonymous_block_A_sharedInstance______1:_fn_ (*)=(_fun___objc_anonymous_block_A_sharedInstance______1) [line 26]\n REMOVE_TEMPS(n$6); [line 26]\n " shape="box"] +5 [label="5: DeclStmt \n DECLARE_LOCALS(&infer___objc_anonymous_block_A_sharedInstance______1); [line 30]\n DECLARE_LOCALS(&__objc_anonymous_block_A_sharedInstance______1); [line 28]\n n$6=_fun___objc_alloc_no_fail(sizeof(class __objc_anonymous_block_A_sharedInstance______1 ):class __objc_anonymous_block_A_sharedInstance______1 *) [line 28]\n *&__objc_anonymous_block_A_sharedInstance______1:class __objc_anonymous_block_A_sharedInstance______1 =n$6 [line 28]\n *&infer___objc_anonymous_block_A_sharedInstance______1:_fn_ (*)=(_fun___objc_anonymous_block_A_sharedInstance______1) [line 30]\n REMOVE_TEMPS(n$6); [line 30]\n " shape="box"] 5 -> 4 ; -4 [label="4: Call n$1 \n n$1=*&infer___objc_anonymous_block_A_sharedInstance______1:_fn_ (*) [line 26]\n n$2=n$1() [line 26]\n REMOVE_TEMPS(n$1,n$2); [line 26]\n NULLIFY(&infer___objc_anonymous_block_A_sharedInstance______1,true); [line 26]\n " shape="box"] +4 [label="4: Call n$1 \n n$1=*&infer___objc_anonymous_block_A_sharedInstance______1:_fn_ (*) [line 30]\n n$2=n$1() [line 30]\n REMOVE_TEMPS(n$1,n$2); [line 30]\n NULLIFY(&infer___objc_anonymous_block_A_sharedInstance______1,true); [line 30]\n " shape="box"] 4 -> 3 ; -3 [label="3: Return Stmt \n n$0=*&#GB$A_sharedInstance_sharedInstance:struct objc_object * [line 28]\n *&return:struct objc_object *=n$0 [line 28]\n REMOVE_TEMPS(n$0); [line 28]\n NULLIFY(&__objc_anonymous_block_A_sharedInstance______1,true); [line 28]\n APPLY_ABSTRACTION; [line 28]\n " shape="box"] +3 [label="3: Return Stmt \n n$0=*&#GB$A_sharedInstance_sharedInstance:struct objc_object * [line 32]\n *&return:struct objc_object *=n$0 [line 32]\n REMOVE_TEMPS(n$0); [line 32]\n NULLIFY(&__objc_anonymous_block_A_sharedInstance______1,true); [line 32]\n APPLY_ABSTRACTION; [line 32]\n " shape="box"] 3 -> 2 ; 2 [label="2: Exit A_sharedInstance \n " color=yellow style=filled] -1 [label="1: Start A_sharedInstance\nFormals: \nLocals: \n DECLARE_LOCALS(&return); [line 19]\n " color=yellow style=filled] +1 [label="1: Start A_sharedInstance\nFormals: \nLocals: \n DECLARE_LOCALS(&return); [line 23]\n " color=yellow style=filled] 1 -> 5 ; diff --git a/infer/tests/codetoanalyze/objc/frontend/block/dispatch.m b/infer/tests/codetoanalyze/objc/frontend/block/dispatch.m index 5ac648d16..d15f7e106 100644 --- a/infer/tests/codetoanalyze/objc/frontend/block/dispatch.m +++ b/infer/tests/codetoanalyze/objc/frontend/block/dispatch.m @@ -1,6 +1,10 @@ /* - * Copyright (c) 2014 - Facebook. - * All rights reserved. +* Copyright (c) 2014 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ #import diff --git a/infer/tests/codetoanalyze/objc/frontend/block/dispatch_examples.dot b/infer/tests/codetoanalyze/objc/frontend/block/dispatch_examples.dot index 715c5a192..398d5722b 100644 --- a/infer/tests/codetoanalyze/objc/frontend/block/dispatch_examples.dot +++ b/infer/tests/codetoanalyze/objc/frontend/block/dispatch_examples.dot @@ -1,229 +1,229 @@ digraph iCFG { -60 [label="60: DeclStmt \n *&#GB$A_dispatch_barrier_example_a:class A *=0 [line 65]\n " shape="box"] +60 [label="60: DeclStmt \n *&#GB$A_dispatch_barrier_example_a:class A *=0 [line 69]\n " shape="box"] 60 -> 55 ; -59 [label="59: BinaryOperatorStmt: Assign \n n$52=_fun___objc_alloc_no_fail(sizeof(class A ):class A *) [line 67]\n n$50=_fun_A_init(n$52:class A *) virtual [line 67]\n *&#GB$A_dispatch_barrier_example_a:class A *=n$50 [line 67]\n REMOVE_TEMPS(n$50,n$52); [line 67]\n " shape="box"] +59 [label="59: BinaryOperatorStmt: Assign \n n$52=_fun___objc_alloc_no_fail(sizeof(class A ):class A *) [line 71]\n n$50=_fun_A_init(n$52:class A *) virtual [line 71]\n *&#GB$A_dispatch_barrier_example_a:class A *=n$50 [line 71]\n REMOVE_TEMPS(n$50,n$52); [line 71]\n " shape="box"] 59 -> 58 ; -58 [label="58: BinaryOperatorStmt: Assign \n n$49=*&#GB$A_dispatch_barrier_example_a:class A * [line 68]\n *n$49.x:int =10 [line 68]\n REMOVE_TEMPS(n$49); [line 68]\n APPLY_ABSTRACTION; [line 68]\n " shape="box"] +58 [label="58: BinaryOperatorStmt: Assign \n n$49=*&#GB$A_dispatch_barrier_example_a:class A * [line 72]\n *n$49.x:int =10 [line 72]\n REMOVE_TEMPS(n$49); [line 72]\n APPLY_ABSTRACTION; [line 72]\n " shape="box"] 58 -> 57 ; 57 [label="57: Exit __objc_anonymous_block_A_dispatch_barrier_example______6 \n " color=yellow style=filled] -56 [label="56: Start __objc_anonymous_block_A_dispatch_barrier_example______6\nFormals: \nLocals: \n DECLARE_LOCALS(&return); [line 66]\n " color=yellow style=filled] +56 [label="56: Start __objc_anonymous_block_A_dispatch_barrier_example______6\nFormals: \nLocals: \n DECLARE_LOCALS(&return); [line 70]\n " color=yellow style=filled] 56 -> 59 ; -55 [label="55: DeclStmt \n DECLARE_LOCALS(&infer___objc_anonymous_block_A_dispatch_barrier_example______6); [line 66]\n DECLARE_LOCALS(&__objc_anonymous_block_A_dispatch_barrier_example______6); [line 66]\n n$53=_fun___objc_alloc_no_fail(sizeof(class __objc_anonymous_block_A_dispatch_barrier_example______6 ):class __objc_anonymous_block_A_dispatch_barrier_example______6 *) [line 66]\n *&__objc_anonymous_block_A_dispatch_barrier_example______6:class __objc_anonymous_block_A_dispatch_barrier_example______6 =n$53 [line 66]\n *&infer___objc_anonymous_block_A_dispatch_barrier_example______6:_fn_ (*)=(_fun___objc_anonymous_block_A_dispatch_barrier_example______6) [line 66]\n REMOVE_TEMPS(n$53); [line 66]\n " shape="box"] +55 [label="55: DeclStmt \n DECLARE_LOCALS(&infer___objc_anonymous_block_A_dispatch_barrier_example______6); [line 70]\n DECLARE_LOCALS(&__objc_anonymous_block_A_dispatch_barrier_example______6); [line 70]\n n$53=_fun___objc_alloc_no_fail(sizeof(class __objc_anonymous_block_A_dispatch_barrier_example______6 ):class __objc_anonymous_block_A_dispatch_barrier_example______6 *) [line 70]\n *&__objc_anonymous_block_A_dispatch_barrier_example______6:class __objc_anonymous_block_A_dispatch_barrier_example______6 =n$53 [line 70]\n *&infer___objc_anonymous_block_A_dispatch_barrier_example______6:_fn_ (*)=(_fun___objc_anonymous_block_A_dispatch_barrier_example______6) [line 70]\n REMOVE_TEMPS(n$53); [line 70]\n " shape="box"] 55 -> 54 ; -54 [label="54: Call n$47 \n n$47=*&infer___objc_anonymous_block_A_dispatch_barrier_example______6:_fn_ (*) [line 66]\n n$48=n$47() [line 66]\n REMOVE_TEMPS(n$47,n$48); [line 66]\n NULLIFY(&infer___objc_anonymous_block_A_dispatch_barrier_example______6,true); [line 66]\n " shape="box"] +54 [label="54: Call n$47 \n n$47=*&infer___objc_anonymous_block_A_dispatch_barrier_example______6:_fn_ (*) [line 70]\n n$48=n$47() [line 70]\n REMOVE_TEMPS(n$47,n$48); [line 70]\n NULLIFY(&infer___objc_anonymous_block_A_dispatch_barrier_example______6,true); [line 70]\n " shape="box"] 54 -> 53 ; -53 [label="53: Return Stmt \n n$45=*&#GB$A_dispatch_barrier_example_a:class A * [line 70]\n n$46=*n$45.x:int [line 70]\n *&return:int =n$46 [line 70]\n REMOVE_TEMPS(n$45,n$46); [line 70]\n NULLIFY(&__objc_anonymous_block_A_dispatch_barrier_example______6,true); [line 70]\n APPLY_ABSTRACTION; [line 70]\n " shape="box"] +53 [label="53: Return Stmt \n n$45=*&#GB$A_dispatch_barrier_example_a:class A * [line 74]\n n$46=*n$45.x:int [line 74]\n *&return:int =n$46 [line 74]\n REMOVE_TEMPS(n$45,n$46); [line 74]\n NULLIFY(&__objc_anonymous_block_A_dispatch_barrier_example______6,true); [line 74]\n APPLY_ABSTRACTION; [line 74]\n " shape="box"] 53 -> 52 ; 52 [label="52: Exit A_dispatch_barrier_example \n " color=yellow style=filled] -51 [label="51: Start A_dispatch_barrier_example\nFormals: \nLocals: \n DECLARE_LOCALS(&return); [line 64]\n " color=yellow style=filled] +51 [label="51: Start A_dispatch_barrier_example\nFormals: \nLocals: \n DECLARE_LOCALS(&return); [line 68]\n " color=yellow style=filled] 51 -> 60 ; -50 [label="50: DeclStmt \n *&#GB$A_dispatch_group_notify_example_a:class A *=0 [line 56]\n " shape="box"] +50 [label="50: DeclStmt \n *&#GB$A_dispatch_group_notify_example_a:class A *=0 [line 60]\n " shape="box"] 50 -> 45 ; -49 [label="49: BinaryOperatorStmt: Assign \n n$43=_fun___objc_alloc_no_fail(sizeof(class A ):class A *) [line 58]\n n$41=_fun_A_init(n$43:class A *) virtual [line 58]\n *&#GB$A_dispatch_group_notify_example_a:class A *=n$41 [line 58]\n REMOVE_TEMPS(n$41,n$43); [line 58]\n " shape="box"] +49 [label="49: BinaryOperatorStmt: Assign \n n$43=_fun___objc_alloc_no_fail(sizeof(class A ):class A *) [line 62]\n n$41=_fun_A_init(n$43:class A *) virtual [line 62]\n *&#GB$A_dispatch_group_notify_example_a:class A *=n$41 [line 62]\n REMOVE_TEMPS(n$41,n$43); [line 62]\n " shape="box"] 49 -> 48 ; -48 [label="48: BinaryOperatorStmt: Assign \n n$40=*&#GB$A_dispatch_group_notify_example_a:class A * [line 59]\n *n$40.x:int =10 [line 59]\n REMOVE_TEMPS(n$40); [line 59]\n APPLY_ABSTRACTION; [line 59]\n " shape="box"] +48 [label="48: BinaryOperatorStmt: Assign \n n$40=*&#GB$A_dispatch_group_notify_example_a:class A * [line 63]\n *n$40.x:int =10 [line 63]\n REMOVE_TEMPS(n$40); [line 63]\n APPLY_ABSTRACTION; [line 63]\n " shape="box"] 48 -> 47 ; 47 [label="47: Exit __objc_anonymous_block_A_dispatch_group_notify_example______5 \n " color=yellow style=filled] -46 [label="46: Start __objc_anonymous_block_A_dispatch_group_notify_example______5\nFormals: \nLocals: \n DECLARE_LOCALS(&return); [line 57]\n " color=yellow style=filled] +46 [label="46: Start __objc_anonymous_block_A_dispatch_group_notify_example______5\nFormals: \nLocals: \n DECLARE_LOCALS(&return); [line 61]\n " color=yellow style=filled] 46 -> 49 ; -45 [label="45: DeclStmt \n DECLARE_LOCALS(&infer___objc_anonymous_block_A_dispatch_group_notify_example______5); [line 57]\n DECLARE_LOCALS(&__objc_anonymous_block_A_dispatch_group_notify_example______5); [line 57]\n n$44=_fun___objc_alloc_no_fail(sizeof(class __objc_anonymous_block_A_dispatch_group_notify_example______5 ):class __objc_anonymous_block_A_dispatch_group_notify_example______5 *) [line 57]\n *&__objc_anonymous_block_A_dispatch_group_notify_example______5:class __objc_anonymous_block_A_dispatch_group_notify_example______5 =n$44 [line 57]\n *&infer___objc_anonymous_block_A_dispatch_group_notify_example______5:_fn_ (*)=(_fun___objc_anonymous_block_A_dispatch_group_notify_example______5) [line 57]\n REMOVE_TEMPS(n$44); [line 57]\n " shape="box"] +45 [label="45: DeclStmt \n DECLARE_LOCALS(&infer___objc_anonymous_block_A_dispatch_group_notify_example______5); [line 61]\n DECLARE_LOCALS(&__objc_anonymous_block_A_dispatch_group_notify_example______5); [line 61]\n n$44=_fun___objc_alloc_no_fail(sizeof(class __objc_anonymous_block_A_dispatch_group_notify_example______5 ):class __objc_anonymous_block_A_dispatch_group_notify_example______5 *) [line 61]\n *&__objc_anonymous_block_A_dispatch_group_notify_example______5:class __objc_anonymous_block_A_dispatch_group_notify_example______5 =n$44 [line 61]\n *&infer___objc_anonymous_block_A_dispatch_group_notify_example______5:_fn_ (*)=(_fun___objc_anonymous_block_A_dispatch_group_notify_example______5) [line 61]\n REMOVE_TEMPS(n$44); [line 61]\n " shape="box"] 45 -> 44 ; -44 [label="44: Call n$38 \n n$38=*&infer___objc_anonymous_block_A_dispatch_group_notify_example______5:_fn_ (*) [line 57]\n n$39=n$38() [line 57]\n REMOVE_TEMPS(n$38,n$39); [line 57]\n NULLIFY(&infer___objc_anonymous_block_A_dispatch_group_notify_example______5,true); [line 57]\n " shape="box"] +44 [label="44: Call n$38 \n n$38=*&infer___objc_anonymous_block_A_dispatch_group_notify_example______5:_fn_ (*) [line 61]\n n$39=n$38() [line 61]\n REMOVE_TEMPS(n$38,n$39); [line 61]\n NULLIFY(&infer___objc_anonymous_block_A_dispatch_group_notify_example______5,true); [line 61]\n " shape="box"] 44 -> 43 ; -43 [label="43: Return Stmt \n n$36=*&#GB$A_dispatch_group_notify_example_a:class A * [line 61]\n n$37=*n$36.x:int [line 61]\n *&return:int =n$37 [line 61]\n REMOVE_TEMPS(n$36,n$37); [line 61]\n NULLIFY(&__objc_anonymous_block_A_dispatch_group_notify_example______5,true); [line 61]\n APPLY_ABSTRACTION; [line 61]\n " shape="box"] +43 [label="43: Return Stmt \n n$36=*&#GB$A_dispatch_group_notify_example_a:class A * [line 65]\n n$37=*n$36.x:int [line 65]\n *&return:int =n$37 [line 65]\n REMOVE_TEMPS(n$36,n$37); [line 65]\n NULLIFY(&__objc_anonymous_block_A_dispatch_group_notify_example______5,true); [line 65]\n APPLY_ABSTRACTION; [line 65]\n " shape="box"] 43 -> 42 ; 42 [label="42: Exit A_dispatch_group_notify_example \n " color=yellow style=filled] -41 [label="41: Start A_dispatch_group_notify_example\nFormals: \nLocals: \n DECLARE_LOCALS(&return); [line 55]\n " color=yellow style=filled] +41 [label="41: Start A_dispatch_group_notify_example\nFormals: \nLocals: \n DECLARE_LOCALS(&return); [line 59]\n " color=yellow style=filled] 41 -> 50 ; -40 [label="40: DeclStmt \n *&#GB$A_dispatch_group_example_a:class A *=0 [line 47]\n " shape="box"] +40 [label="40: DeclStmt \n *&#GB$A_dispatch_group_example_a:class A *=0 [line 51]\n " shape="box"] 40 -> 35 ; -39 [label="39: BinaryOperatorStmt: Assign \n n$34=_fun___objc_alloc_no_fail(sizeof(class A ):class A *) [line 49]\n n$32=_fun_A_init(n$34:class A *) virtual [line 49]\n *&#GB$A_dispatch_group_example_a:class A *=n$32 [line 49]\n REMOVE_TEMPS(n$32,n$34); [line 49]\n " shape="box"] +39 [label="39: BinaryOperatorStmt: Assign \n n$34=_fun___objc_alloc_no_fail(sizeof(class A ):class A *) [line 53]\n n$32=_fun_A_init(n$34:class A *) virtual [line 53]\n *&#GB$A_dispatch_group_example_a:class A *=n$32 [line 53]\n REMOVE_TEMPS(n$32,n$34); [line 53]\n " shape="box"] 39 -> 38 ; -38 [label="38: BinaryOperatorStmt: Assign \n n$31=*&#GB$A_dispatch_group_example_a:class A * [line 50]\n *n$31.x:int =10 [line 50]\n REMOVE_TEMPS(n$31); [line 50]\n APPLY_ABSTRACTION; [line 50]\n " shape="box"] +38 [label="38: BinaryOperatorStmt: Assign \n n$31=*&#GB$A_dispatch_group_example_a:class A * [line 54]\n *n$31.x:int =10 [line 54]\n REMOVE_TEMPS(n$31); [line 54]\n APPLY_ABSTRACTION; [line 54]\n " shape="box"] 38 -> 37 ; 37 [label="37: Exit __objc_anonymous_block_A_dispatch_group_example______4 \n " color=yellow style=filled] -36 [label="36: Start __objc_anonymous_block_A_dispatch_group_example______4\nFormals: \nLocals: \n DECLARE_LOCALS(&return); [line 48]\n " color=yellow style=filled] +36 [label="36: Start __objc_anonymous_block_A_dispatch_group_example______4\nFormals: \nLocals: \n DECLARE_LOCALS(&return); [line 52]\n " color=yellow style=filled] 36 -> 39 ; -35 [label="35: DeclStmt \n DECLARE_LOCALS(&infer___objc_anonymous_block_A_dispatch_group_example______4); [line 48]\n DECLARE_LOCALS(&__objc_anonymous_block_A_dispatch_group_example______4); [line 48]\n n$35=_fun___objc_alloc_no_fail(sizeof(class __objc_anonymous_block_A_dispatch_group_example______4 ):class __objc_anonymous_block_A_dispatch_group_example______4 *) [line 48]\n *&__objc_anonymous_block_A_dispatch_group_example______4:class __objc_anonymous_block_A_dispatch_group_example______4 =n$35 [line 48]\n *&infer___objc_anonymous_block_A_dispatch_group_example______4:_fn_ (*)=(_fun___objc_anonymous_block_A_dispatch_group_example______4) [line 48]\n REMOVE_TEMPS(n$35); [line 48]\n " shape="box"] +35 [label="35: DeclStmt \n DECLARE_LOCALS(&infer___objc_anonymous_block_A_dispatch_group_example______4); [line 52]\n DECLARE_LOCALS(&__objc_anonymous_block_A_dispatch_group_example______4); [line 52]\n n$35=_fun___objc_alloc_no_fail(sizeof(class __objc_anonymous_block_A_dispatch_group_example______4 ):class __objc_anonymous_block_A_dispatch_group_example______4 *) [line 52]\n *&__objc_anonymous_block_A_dispatch_group_example______4:class __objc_anonymous_block_A_dispatch_group_example______4 =n$35 [line 52]\n *&infer___objc_anonymous_block_A_dispatch_group_example______4:_fn_ (*)=(_fun___objc_anonymous_block_A_dispatch_group_example______4) [line 52]\n REMOVE_TEMPS(n$35); [line 52]\n " shape="box"] 35 -> 34 ; -34 [label="34: Call n$29 \n n$29=*&infer___objc_anonymous_block_A_dispatch_group_example______4:_fn_ (*) [line 48]\n n$30=n$29() [line 48]\n REMOVE_TEMPS(n$29,n$30); [line 48]\n NULLIFY(&infer___objc_anonymous_block_A_dispatch_group_example______4,true); [line 48]\n " shape="box"] +34 [label="34: Call n$29 \n n$29=*&infer___objc_anonymous_block_A_dispatch_group_example______4:_fn_ (*) [line 52]\n n$30=n$29() [line 52]\n REMOVE_TEMPS(n$29,n$30); [line 52]\n NULLIFY(&infer___objc_anonymous_block_A_dispatch_group_example______4,true); [line 52]\n " shape="box"] 34 -> 33 ; -33 [label="33: Return Stmt \n n$27=*&#GB$A_dispatch_group_example_a:class A * [line 52]\n n$28=*n$27.x:int [line 52]\n *&return:int =n$28 [line 52]\n REMOVE_TEMPS(n$27,n$28); [line 52]\n NULLIFY(&__objc_anonymous_block_A_dispatch_group_example______4,true); [line 52]\n APPLY_ABSTRACTION; [line 52]\n " shape="box"] +33 [label="33: Return Stmt \n n$27=*&#GB$A_dispatch_group_example_a:class A * [line 56]\n n$28=*n$27.x:int [line 56]\n *&return:int =n$28 [line 56]\n REMOVE_TEMPS(n$27,n$28); [line 56]\n NULLIFY(&__objc_anonymous_block_A_dispatch_group_example______4,true); [line 56]\n APPLY_ABSTRACTION; [line 56]\n " shape="box"] 33 -> 32 ; 32 [label="32: Exit A_dispatch_group_example \n " color=yellow style=filled] -31 [label="31: Start A_dispatch_group_example\nFormals: \nLocals: \n DECLARE_LOCALS(&return); [line 46]\n " color=yellow style=filled] +31 [label="31: Start A_dispatch_group_example\nFormals: \nLocals: \n DECLARE_LOCALS(&return); [line 50]\n " color=yellow style=filled] 31 -> 40 ; -30 [label="30: DeclStmt \n *&#GB$A_dispatch_after_example_a:class A *=0 [line 37]\n " shape="box"] +30 [label="30: DeclStmt \n *&#GB$A_dispatch_after_example_a:class A *=0 [line 41]\n " shape="box"] 30 -> 25 ; -29 [label="29: BinaryOperatorStmt: Assign \n n$25=_fun___objc_alloc_no_fail(sizeof(class A ):class A *) [line 40]\n n$23=_fun_A_init(n$25:class A *) virtual [line 40]\n *&#GB$A_dispatch_after_example_a:class A *=n$23 [line 40]\n REMOVE_TEMPS(n$23,n$25); [line 40]\n " shape="box"] +29 [label="29: BinaryOperatorStmt: Assign \n n$25=_fun___objc_alloc_no_fail(sizeof(class A ):class A *) [line 44]\n n$23=_fun_A_init(n$25:class A *) virtual [line 44]\n *&#GB$A_dispatch_after_example_a:class A *=n$23 [line 44]\n REMOVE_TEMPS(n$23,n$25); [line 44]\n " shape="box"] 29 -> 28 ; -28 [label="28: BinaryOperatorStmt: Assign \n n$22=*&#GB$A_dispatch_after_example_a:class A * [line 41]\n *n$22.x:int =10 [line 41]\n REMOVE_TEMPS(n$22); [line 41]\n APPLY_ABSTRACTION; [line 41]\n " shape="box"] +28 [label="28: BinaryOperatorStmt: Assign \n n$22=*&#GB$A_dispatch_after_example_a:class A * [line 45]\n *n$22.x:int =10 [line 45]\n REMOVE_TEMPS(n$22); [line 45]\n APPLY_ABSTRACTION; [line 45]\n " shape="box"] 28 -> 27 ; 27 [label="27: Exit __objc_anonymous_block_A_dispatch_after_example______3 \n " color=yellow style=filled] -26 [label="26: Start __objc_anonymous_block_A_dispatch_after_example______3\nFormals: \nLocals: \n DECLARE_LOCALS(&return); [line 39]\n " color=yellow style=filled] +26 [label="26: Start __objc_anonymous_block_A_dispatch_after_example______3\nFormals: \nLocals: \n DECLARE_LOCALS(&return); [line 43]\n " color=yellow style=filled] 26 -> 29 ; -25 [label="25: DeclStmt \n DECLARE_LOCALS(&infer___objc_anonymous_block_A_dispatch_after_example______3); [line 38]\n DECLARE_LOCALS(&__objc_anonymous_block_A_dispatch_after_example______3); [line 39]\n n$26=_fun___objc_alloc_no_fail(sizeof(class __objc_anonymous_block_A_dispatch_after_example______3 ):class __objc_anonymous_block_A_dispatch_after_example______3 *) [line 39]\n *&__objc_anonymous_block_A_dispatch_after_example______3:class __objc_anonymous_block_A_dispatch_after_example______3 =n$26 [line 39]\n *&infer___objc_anonymous_block_A_dispatch_after_example______3:_fn_ (*)=(_fun___objc_anonymous_block_A_dispatch_after_example______3) [line 38]\n REMOVE_TEMPS(n$26); [line 38]\n " shape="box"] +25 [label="25: DeclStmt \n DECLARE_LOCALS(&infer___objc_anonymous_block_A_dispatch_after_example______3); [line 42]\n DECLARE_LOCALS(&__objc_anonymous_block_A_dispatch_after_example______3); [line 43]\n n$26=_fun___objc_alloc_no_fail(sizeof(class __objc_anonymous_block_A_dispatch_after_example______3 ):class __objc_anonymous_block_A_dispatch_after_example______3 *) [line 43]\n *&__objc_anonymous_block_A_dispatch_after_example______3:class __objc_anonymous_block_A_dispatch_after_example______3 =n$26 [line 43]\n *&infer___objc_anonymous_block_A_dispatch_after_example______3:_fn_ (*)=(_fun___objc_anonymous_block_A_dispatch_after_example______3) [line 42]\n REMOVE_TEMPS(n$26); [line 42]\n " shape="box"] 25 -> 24 ; -24 [label="24: Call n$20 \n n$20=*&infer___objc_anonymous_block_A_dispatch_after_example______3:_fn_ (*) [line 38]\n n$21=n$20() [line 38]\n REMOVE_TEMPS(n$20,n$21); [line 38]\n NULLIFY(&infer___objc_anonymous_block_A_dispatch_after_example______3,true); [line 38]\n " shape="box"] +24 [label="24: Call n$20 \n n$20=*&infer___objc_anonymous_block_A_dispatch_after_example______3:_fn_ (*) [line 42]\n n$21=n$20() [line 42]\n REMOVE_TEMPS(n$20,n$21); [line 42]\n NULLIFY(&infer___objc_anonymous_block_A_dispatch_after_example______3,true); [line 42]\n " shape="box"] 24 -> 23 ; -23 [label="23: Return Stmt \n n$18=*&#GB$A_dispatch_after_example_a:class A * [line 43]\n n$19=*n$18.x:int [line 43]\n *&return:int =n$19 [line 43]\n REMOVE_TEMPS(n$18,n$19); [line 43]\n NULLIFY(&__objc_anonymous_block_A_dispatch_after_example______3,true); [line 43]\n APPLY_ABSTRACTION; [line 43]\n " shape="box"] +23 [label="23: Return Stmt \n n$18=*&#GB$A_dispatch_after_example_a:class A * [line 47]\n n$19=*n$18.x:int [line 47]\n *&return:int =n$19 [line 47]\n REMOVE_TEMPS(n$18,n$19); [line 47]\n NULLIFY(&__objc_anonymous_block_A_dispatch_after_example______3,true); [line 47]\n APPLY_ABSTRACTION; [line 47]\n " shape="box"] 23 -> 22 ; 22 [label="22: Exit A_dispatch_after_example \n " color=yellow style=filled] -21 [label="21: Start A_dispatch_after_example\nFormals: \nLocals: \n DECLARE_LOCALS(&return); [line 36]\n " color=yellow style=filled] +21 [label="21: Start A_dispatch_after_example\nFormals: \nLocals: \n DECLARE_LOCALS(&return); [line 40]\n " color=yellow style=filled] 21 -> 30 ; -20 [label="20: DeclStmt \n *&#GB$A_dispatch_async_example_a:class A *=0 [line 28]\n " shape="box"] +20 [label="20: DeclStmt \n *&#GB$A_dispatch_async_example_a:class A *=0 [line 32]\n " shape="box"] 20 -> 15 ; -19 [label="19: BinaryOperatorStmt: Assign \n n$16=_fun___objc_alloc_no_fail(sizeof(class A ):class A *) [line 30]\n n$14=_fun_A_init(n$16:class A *) virtual [line 30]\n *&#GB$A_dispatch_async_example_a:class A *=n$14 [line 30]\n REMOVE_TEMPS(n$14,n$16); [line 30]\n " shape="box"] +19 [label="19: BinaryOperatorStmt: Assign \n n$16=_fun___objc_alloc_no_fail(sizeof(class A ):class A *) [line 34]\n n$14=_fun_A_init(n$16:class A *) virtual [line 34]\n *&#GB$A_dispatch_async_example_a:class A *=n$14 [line 34]\n REMOVE_TEMPS(n$14,n$16); [line 34]\n " shape="box"] 19 -> 18 ; -18 [label="18: BinaryOperatorStmt: Assign \n n$13=*&#GB$A_dispatch_async_example_a:class A * [line 31]\n *n$13.x:int =10 [line 31]\n REMOVE_TEMPS(n$13); [line 31]\n APPLY_ABSTRACTION; [line 31]\n " shape="box"] +18 [label="18: BinaryOperatorStmt: Assign \n n$13=*&#GB$A_dispatch_async_example_a:class A * [line 35]\n *n$13.x:int =10 [line 35]\n REMOVE_TEMPS(n$13); [line 35]\n APPLY_ABSTRACTION; [line 35]\n " shape="box"] 18 -> 17 ; 17 [label="17: Exit __objc_anonymous_block_A_dispatch_async_example______2 \n " color=yellow style=filled] -16 [label="16: Start __objc_anonymous_block_A_dispatch_async_example______2\nFormals: \nLocals: \n DECLARE_LOCALS(&return); [line 29]\n " color=yellow style=filled] +16 [label="16: Start __objc_anonymous_block_A_dispatch_async_example______2\nFormals: \nLocals: \n DECLARE_LOCALS(&return); [line 33]\n " color=yellow style=filled] 16 -> 19 ; -15 [label="15: DeclStmt \n DECLARE_LOCALS(&infer___objc_anonymous_block_A_dispatch_async_example______2); [line 29]\n DECLARE_LOCALS(&__objc_anonymous_block_A_dispatch_async_example______2); [line 29]\n n$17=_fun___objc_alloc_no_fail(sizeof(class __objc_anonymous_block_A_dispatch_async_example______2 ):class __objc_anonymous_block_A_dispatch_async_example______2 *) [line 29]\n *&__objc_anonymous_block_A_dispatch_async_example______2:class __objc_anonymous_block_A_dispatch_async_example______2 =n$17 [line 29]\n *&infer___objc_anonymous_block_A_dispatch_async_example______2:_fn_ (*)=(_fun___objc_anonymous_block_A_dispatch_async_example______2) [line 29]\n REMOVE_TEMPS(n$17); [line 29]\n " shape="box"] +15 [label="15: DeclStmt \n DECLARE_LOCALS(&infer___objc_anonymous_block_A_dispatch_async_example______2); [line 33]\n DECLARE_LOCALS(&__objc_anonymous_block_A_dispatch_async_example______2); [line 33]\n n$17=_fun___objc_alloc_no_fail(sizeof(class __objc_anonymous_block_A_dispatch_async_example______2 ):class __objc_anonymous_block_A_dispatch_async_example______2 *) [line 33]\n *&__objc_anonymous_block_A_dispatch_async_example______2:class __objc_anonymous_block_A_dispatch_async_example______2 =n$17 [line 33]\n *&infer___objc_anonymous_block_A_dispatch_async_example______2:_fn_ (*)=(_fun___objc_anonymous_block_A_dispatch_async_example______2) [line 33]\n REMOVE_TEMPS(n$17); [line 33]\n " shape="box"] 15 -> 14 ; -14 [label="14: Call n$11 \n n$11=*&infer___objc_anonymous_block_A_dispatch_async_example______2:_fn_ (*) [line 29]\n n$12=n$11() [line 29]\n REMOVE_TEMPS(n$11,n$12); [line 29]\n NULLIFY(&infer___objc_anonymous_block_A_dispatch_async_example______2,true); [line 29]\n " shape="box"] +14 [label="14: Call n$11 \n n$11=*&infer___objc_anonymous_block_A_dispatch_async_example______2:_fn_ (*) [line 33]\n n$12=n$11() [line 33]\n REMOVE_TEMPS(n$11,n$12); [line 33]\n NULLIFY(&infer___objc_anonymous_block_A_dispatch_async_example______2,true); [line 33]\n " shape="box"] 14 -> 13 ; -13 [label="13: Return Stmt \n n$9=*&#GB$A_dispatch_async_example_a:class A * [line 33]\n n$10=*n$9.x:int [line 33]\n *&return:int =n$10 [line 33]\n REMOVE_TEMPS(n$9,n$10); [line 33]\n NULLIFY(&__objc_anonymous_block_A_dispatch_async_example______2,true); [line 33]\n APPLY_ABSTRACTION; [line 33]\n " shape="box"] +13 [label="13: Return Stmt \n n$9=*&#GB$A_dispatch_async_example_a:class A * [line 37]\n n$10=*n$9.x:int [line 37]\n *&return:int =n$10 [line 37]\n REMOVE_TEMPS(n$9,n$10); [line 37]\n NULLIFY(&__objc_anonymous_block_A_dispatch_async_example______2,true); [line 37]\n APPLY_ABSTRACTION; [line 37]\n " shape="box"] 13 -> 12 ; 12 [label="12: Exit A_dispatch_async_example \n " color=yellow style=filled] -11 [label="11: Start A_dispatch_async_example\nFormals: \nLocals: \n DECLARE_LOCALS(&return); [line 27]\n " color=yellow style=filled] +11 [label="11: Start A_dispatch_async_example\nFormals: \nLocals: \n DECLARE_LOCALS(&return); [line 31]\n " color=yellow style=filled] 11 -> 20 ; -10 [label="10: DeclStmt \n *&#GB$A_dispatch_once_example_a:class A *=0 [line 17]\n " shape="box"] +10 [label="10: DeclStmt \n *&#GB$A_dispatch_once_example_a:class A *=0 [line 21]\n " shape="box"] 10 -> 5 ; -9 [label="9: BinaryOperatorStmt: Assign \n n$7=_fun___objc_alloc_no_fail(sizeof(class A ):class A *) [line 21]\n n$5=_fun_A_init(n$7:class A *) virtual [line 21]\n *&#GB$A_dispatch_once_example_a:class A *=n$5 [line 21]\n REMOVE_TEMPS(n$5,n$7); [line 21]\n " shape="box"] +9 [label="9: BinaryOperatorStmt: Assign \n n$7=_fun___objc_alloc_no_fail(sizeof(class A ):class A *) [line 25]\n n$5=_fun_A_init(n$7:class A *) virtual [line 25]\n *&#GB$A_dispatch_once_example_a:class A *=n$5 [line 25]\n REMOVE_TEMPS(n$5,n$7); [line 25]\n " shape="box"] 9 -> 8 ; -8 [label="8: BinaryOperatorStmt: Assign \n n$4=*&#GB$A_dispatch_once_example_a:class A * [line 22]\n *n$4.x:int =10 [line 22]\n REMOVE_TEMPS(n$4); [line 22]\n APPLY_ABSTRACTION; [line 22]\n " shape="box"] +8 [label="8: BinaryOperatorStmt: Assign \n n$4=*&#GB$A_dispatch_once_example_a:class A * [line 26]\n *n$4.x:int =10 [line 26]\n REMOVE_TEMPS(n$4); [line 26]\n APPLY_ABSTRACTION; [line 26]\n " shape="box"] 8 -> 7 ; 7 [label="7: Exit __objc_anonymous_block_A_dispatch_once_example______1 \n " color=yellow style=filled] -6 [label="6: Start __objc_anonymous_block_A_dispatch_once_example______1\nFormals: \nLocals: \n DECLARE_LOCALS(&return); [line 20]\n " color=yellow style=filled] +6 [label="6: Start __objc_anonymous_block_A_dispatch_once_example______1\nFormals: \nLocals: \n DECLARE_LOCALS(&return); [line 24]\n " color=yellow style=filled] 6 -> 9 ; -5 [label="5: DeclStmt \n DECLARE_LOCALS(&infer___objc_anonymous_block_A_dispatch_once_example______1); [line 19]\n DECLARE_LOCALS(&__objc_anonymous_block_A_dispatch_once_example______1); [line 20]\n n$8=_fun___objc_alloc_no_fail(sizeof(class __objc_anonymous_block_A_dispatch_once_example______1 ):class __objc_anonymous_block_A_dispatch_once_example______1 *) [line 20]\n *&__objc_anonymous_block_A_dispatch_once_example______1:class __objc_anonymous_block_A_dispatch_once_example______1 =n$8 [line 20]\n *&infer___objc_anonymous_block_A_dispatch_once_example______1:_fn_ (*)=(_fun___objc_anonymous_block_A_dispatch_once_example______1) [line 19]\n REMOVE_TEMPS(n$8); [line 19]\n " shape="box"] +5 [label="5: DeclStmt \n DECLARE_LOCALS(&infer___objc_anonymous_block_A_dispatch_once_example______1); [line 23]\n DECLARE_LOCALS(&__objc_anonymous_block_A_dispatch_once_example______1); [line 24]\n n$8=_fun___objc_alloc_no_fail(sizeof(class __objc_anonymous_block_A_dispatch_once_example______1 ):class __objc_anonymous_block_A_dispatch_once_example______1 *) [line 24]\n *&__objc_anonymous_block_A_dispatch_once_example______1:class __objc_anonymous_block_A_dispatch_once_example______1 =n$8 [line 24]\n *&infer___objc_anonymous_block_A_dispatch_once_example______1:_fn_ (*)=(_fun___objc_anonymous_block_A_dispatch_once_example______1) [line 23]\n REMOVE_TEMPS(n$8); [line 23]\n " shape="box"] 5 -> 4 ; -4 [label="4: Call n$2 \n n$2=*&infer___objc_anonymous_block_A_dispatch_once_example______1:_fn_ (*) [line 19]\n n$3=n$2() [line 19]\n REMOVE_TEMPS(n$2,n$3); [line 19]\n NULLIFY(&infer___objc_anonymous_block_A_dispatch_once_example______1,true); [line 19]\n " shape="box"] +4 [label="4: Call n$2 \n n$2=*&infer___objc_anonymous_block_A_dispatch_once_example______1:_fn_ (*) [line 23]\n n$3=n$2() [line 23]\n REMOVE_TEMPS(n$2,n$3); [line 23]\n NULLIFY(&infer___objc_anonymous_block_A_dispatch_once_example______1,true); [line 23]\n " shape="box"] 4 -> 3 ; -3 [label="3: Return Stmt \n n$0=*&#GB$A_dispatch_once_example_a:class A * [line 24]\n n$1=*n$0.x:int [line 24]\n *&return:int =n$1 [line 24]\n REMOVE_TEMPS(n$0,n$1); [line 24]\n NULLIFY(&__objc_anonymous_block_A_dispatch_once_example______1,true); [line 24]\n APPLY_ABSTRACTION; [line 24]\n " shape="box"] +3 [label="3: Return Stmt \n n$0=*&#GB$A_dispatch_once_example_a:class A * [line 28]\n n$1=*n$0.x:int [line 28]\n *&return:int =n$1 [line 28]\n REMOVE_TEMPS(n$0,n$1); [line 28]\n NULLIFY(&__objc_anonymous_block_A_dispatch_once_example______1,true); [line 28]\n APPLY_ABSTRACTION; [line 28]\n " shape="box"] 3 -> 2 ; 2 [label="2: Exit A_dispatch_once_example \n " color=yellow style=filled] -1 [label="1: Start A_dispatch_once_example\nFormals: \nLocals: \n DECLARE_LOCALS(&return); [line 16]\n " color=yellow style=filled] +1 [label="1: Start A_dispatch_once_example\nFormals: \nLocals: \n DECLARE_LOCALS(&return); [line 20]\n " color=yellow style=filled] 1 -> 10 ; diff --git a/infer/tests/codetoanalyze/objc/frontend/block/dispatch_examples.m b/infer/tests/codetoanalyze/objc/frontend/block/dispatch_examples.m index f278c4f40..1aa861d3c 100644 --- a/infer/tests/codetoanalyze/objc/frontend/block/dispatch_examples.m +++ b/infer/tests/codetoanalyze/objc/frontend/block/dispatch_examples.m @@ -1,6 +1,10 @@ /* - * Copyright (c) 2014 - Facebook. - * All rights reserved. +* Copyright (c) 2014 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ #import diff --git a/infer/tests/codetoanalyze/objc/frontend/block/main.m b/infer/tests/codetoanalyze/objc/frontend/block/main.m index b37efe793..84a19b423 100644 --- a/infer/tests/codetoanalyze/objc/frontend/block/main.m +++ b/infer/tests/codetoanalyze/objc/frontend/block/main.m @@ -1,6 +1,10 @@ /* - * Copyright (c) 2014 - Facebook. - * All rights reserved. +* Copyright (c) 2014 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ #import "BlockVar.m" diff --git a/infer/tests/codetoanalyze/objc/frontend/block/retain_cycle.dot b/infer/tests/codetoanalyze/objc/frontend/block/retain_cycle.dot index a4febf496..627523662 100644 --- a/infer/tests/codetoanalyze/objc/frontend/block/retain_cycle.dot +++ b/infer/tests/codetoanalyze/objc/frontend/block/retain_cycle.dot @@ -1,72 +1,72 @@ digraph iCFG { -19 [label="19: DeclStmt \n n$18=_fun___objc_alloc_no_fail(sizeof(class A ):class A *) [line 64]\n *&a:class A *=n$18 [line 64]\n REMOVE_TEMPS(n$18); [line 64]\n " shape="box"] +19 [label="19: DeclStmt \n n$18=_fun___objc_alloc_no_fail(sizeof(class A ):class A *) [line 68]\n *&a:class A *=n$18 [line 68]\n REMOVE_TEMPS(n$18); [line 68]\n " shape="box"] 19 -> 18 ; -18 [label="18: BinaryOperatorStmt: Assign \n n$15=*&a:class A * [line 66]\n n$16=_fun_foo(n$15:class A *) [line 66]\n *&a:class A *=n$16 [line 66]\n REMOVE_TEMPS(n$15,n$16); [line 66]\n NULLIFY(&a,false); [line 66]\n " shape="box"] +18 [label="18: BinaryOperatorStmt: Assign \n n$15=*&a:class A * [line 70]\n n$16=_fun_foo(n$15:class A *) [line 70]\n *&a:class A *=n$16 [line 70]\n REMOVE_TEMPS(n$15,n$16); [line 70]\n NULLIFY(&a,false); [line 70]\n " shape="box"] 18 -> 17 ; -17 [label="17: Return Stmt \n *&return:int =0 [line 68]\n APPLY_ABSTRACTION; [line 68]\n " shape="box"] +17 [label="17: Return Stmt \n *&return:int =0 [line 72]\n APPLY_ABSTRACTION; [line 72]\n " shape="box"] 17 -> 16 ; 16 [label="16: Exit main \n " color=yellow style=filled] -15 [label="15: Start main\nFormals: argc:int argv:char **\nLocals: a:class A * \n DECLARE_LOCALS(&return,&a); [line 62]\n NULLIFY(&a,false); [line 62]\n NULLIFY(&argc,false); [line 62]\n NULLIFY(&argv,false); [line 62]\n " color=yellow style=filled] +15 [label="15: Start main\nFormals: argc:int argv:char **\nLocals: a:class A * \n DECLARE_LOCALS(&return,&a); [line 66]\n NULLIFY(&a,false); [line 66]\n NULLIFY(&argc,false); [line 66]\n NULLIFY(&argv,false); [line 66]\n " color=yellow style=filled] 15 -> 19 ; -14 [label="14: Message Call: capture \n n$14=*&a:class A * [line 56]\n _fun_A_capture(n$14:class A *) virtual [line 56]\n REMOVE_TEMPS(n$14); [line 56]\n " shape="box"] +14 [label="14: Message Call: capture \n n$14=*&a:class A * [line 60]\n _fun_A_capture(n$14:class A *) virtual [line 60]\n REMOVE_TEMPS(n$14); [line 60]\n " shape="box"] 14 -> 13 ; -13 [label="13: Return Stmt \n n$13=*&a:class A * [line 58]\n *&return:class A *=n$13 [line 58]\n REMOVE_TEMPS(n$13); [line 58]\n NULLIFY(&a,false); [line 58]\n APPLY_ABSTRACTION; [line 58]\n " shape="box"] +13 [label="13: Return Stmt \n n$13=*&a:class A * [line 62]\n *&return:class A *=n$13 [line 62]\n REMOVE_TEMPS(n$13); [line 62]\n NULLIFY(&a,false); [line 62]\n APPLY_ABSTRACTION; [line 62]\n " shape="box"] 13 -> 12 ; 12 [label="12: Exit foo \n " color=yellow style=filled] -11 [label="11: Start foo\nFormals: a:class A *\nLocals: \n DECLARE_LOCALS(&return); [line 54]\n " color=yellow style=filled] +11 [label="11: Start foo\nFormals: a:class A *\nLocals: \n DECLARE_LOCALS(&return); [line 58]\n " color=yellow style=filled] 11 -> 14 ; -10 [label="10: BinaryOperatorStmt: Assign \n n$10=*&self:class A * [line 46]\n n$12=_fun___objc_alloc_no_fail(sizeof(class B ):class B *) [line 46]\n *n$10._b:class B *=n$12 [line 46]\n REMOVE_TEMPS(n$10,n$12); [line 46]\n " shape="box"] +10 [label="10: BinaryOperatorStmt: Assign \n n$10=*&self:class A * [line 50]\n n$12=_fun___objc_alloc_no_fail(sizeof(class B ):class B *) [line 50]\n *n$10._b:class B *=n$12 [line 50]\n REMOVE_TEMPS(n$10,n$12); [line 50]\n " shape="box"] 10 -> 9 ; -9 [label="9: Message Call: sHandler: \n n$2=*&self:class A * [line 47]\n n$3=*n$2._b:class B * [line 47]\n DECLARE_LOCALS(&__objc_anonymous_block_A_capture______1); [line 47]\n n$7=_fun___objc_alloc_no_fail(sizeof(class __objc_anonymous_block_A_capture______1 ):class __objc_anonymous_block_A_capture______1 *) [line 47]\n *&__objc_anonymous_block_A_capture______1:class __objc_anonymous_block_A_capture______1 =n$7 [line 47]\n n$8=*&self:class A * [line 47]\n *n$7.self:class A *=n$8 [line 47]\n n$4=*&self:class A * [line 47]\n n$9=*&__objc_anonymous_block_A_capture______1:_fn_ (*) [line 47]\n _fun_B_sHandler:(n$3:class B *,n$9:_fn_ (*),n$4:_fn_ (*)) virtual [line 47]\n REMOVE_TEMPS(n$2,n$3,n$7,n$8,n$4,n$9); [line 47]\n NULLIFY(&__objc_anonymous_block_A_capture______1,true); [line 47]\n NULLIFY(&self,false); [line 47]\n APPLY_ABSTRACTION; [line 47]\n " shape="box"] +9 [label="9: Message Call: sHandler: \n n$2=*&self:class A * [line 51]\n n$3=*n$2._b:class B * [line 51]\n DECLARE_LOCALS(&__objc_anonymous_block_A_capture______1); [line 51]\n n$7=_fun___objc_alloc_no_fail(sizeof(class __objc_anonymous_block_A_capture______1 ):class __objc_anonymous_block_A_capture______1 *) [line 51]\n *&__objc_anonymous_block_A_capture______1:class __objc_anonymous_block_A_capture______1 =n$7 [line 51]\n n$8=*&self:class A * [line 51]\n *n$7.self:class A *=n$8 [line 51]\n n$4=*&self:class A * [line 51]\n n$9=*&__objc_anonymous_block_A_capture______1:_fn_ (*) [line 51]\n _fun_B_sHandler:(n$3:class B *,n$9:_fn_ (*),n$4:_fn_ (*)) virtual [line 51]\n REMOVE_TEMPS(n$2,n$3,n$7,n$8,n$4,n$9); [line 51]\n NULLIFY(&__objc_anonymous_block_A_capture______1,true); [line 51]\n NULLIFY(&self,false); [line 51]\n APPLY_ABSTRACTION; [line 51]\n " shape="box"] 9 -> 5 ; -8 [label="8: BinaryOperatorStmt: Assign \n n$5=*&self:class A * [line 48]\n n$6=*&d:class D * [line 48]\n *n$5._data:class D *=n$6 [line 48]\n REMOVE_TEMPS(n$5,n$6); [line 48]\n NULLIFY(&d,false); [line 48]\n APPLY_ABSTRACTION; [line 48]\n " shape="box"] +8 [label="8: BinaryOperatorStmt: Assign \n n$5=*&self:class A * [line 52]\n n$6=*&d:class D * [line 52]\n *n$5._data:class D *=n$6 [line 52]\n REMOVE_TEMPS(n$5,n$6); [line 52]\n NULLIFY(&d,false); [line 52]\n APPLY_ABSTRACTION; [line 52]\n " shape="box"] 8 -> 7 ; 7 [label="7: Exit __objc_anonymous_block_A_capture______1 \n " color=yellow style=filled] -6 [label="6: Start __objc_anonymous_block_A_capture______1\nFormals: self:class A * d:class D *\nLocals: \nCaptured: self:class A * \n DECLARE_LOCALS(&return); [line 47]\n " color=yellow style=filled] +6 [label="6: Start __objc_anonymous_block_A_capture______1\nFormals: self:class A * d:class D *\nLocals: \nCaptured: self:class A * \n DECLARE_LOCALS(&return); [line 51]\n " color=yellow style=filled] 6 -> 8 ; 5 [label="5: Exit A_capture \n " color=yellow style=filled] -4 [label="4: Start A_capture\nFormals: self:class A *\nLocals: \n DECLARE_LOCALS(&return); [line 44]\n " color=yellow style=filled] +4 [label="4: Start A_capture\nFormals: self:class A *\nLocals: \n DECLARE_LOCALS(&return); [line 48]\n " color=yellow style=filled] 4 -> 10 ; -3 [label="3: BinaryOperatorStmt: Assign \n n$0=*&self:class B * [line 28]\n n$1=*&h:_fn_ (*) [line 28]\n *n$0._h:_fn_ (*)=n$1 [line 28]\n REMOVE_TEMPS(n$0,n$1); [line 28]\n NULLIFY(&h,false); [line 28]\n NULLIFY(&self,false); [line 28]\n APPLY_ABSTRACTION; [line 28]\n " shape="box"] +3 [label="3: BinaryOperatorStmt: Assign \n n$0=*&self:class B * [line 32]\n n$1=*&h:_fn_ (*) [line 32]\n *n$0._h:_fn_ (*)=n$1 [line 32]\n REMOVE_TEMPS(n$0,n$1); [line 32]\n NULLIFY(&h,false); [line 32]\n NULLIFY(&self,false); [line 32]\n APPLY_ABSTRACTION; [line 32]\n " shape="box"] 3 -> 2 ; 2 [label="2: Exit B_sHandler: \n " color=yellow style=filled] -1 [label="1: Start B_sHandler:\nFormals: self:class B * h:_fn_ (*)\nLocals: \n DECLARE_LOCALS(&return); [line 26]\n " color=yellow style=filled] +1 [label="1: Start B_sHandler:\nFormals: self:class B * h:_fn_ (*)\nLocals: \n DECLARE_LOCALS(&return); [line 30]\n " color=yellow style=filled] 1 -> 3 ; diff --git a/infer/tests/codetoanalyze/objc/frontend/block/retain_cycle.m b/infer/tests/codetoanalyze/objc/frontend/block/retain_cycle.m index 2ab64f291..2c64f52a8 100644 --- a/infer/tests/codetoanalyze/objc/frontend/block/retain_cycle.m +++ b/infer/tests/codetoanalyze/objc/frontend/block/retain_cycle.m @@ -1,6 +1,10 @@ /* - * Copyright (c) 2015 - Facebook. - * All rights reserved. +* Copyright (c) 2015 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ #import diff --git a/infer/tests/codetoanalyze/objc/frontend/block/static.dot b/infer/tests/codetoanalyze/objc/frontend/block/static.dot index 502b88856..79d09b39e 100644 --- a/infer/tests/codetoanalyze/objc/frontend/block/static.dot +++ b/infer/tests/codetoanalyze/objc/frontend/block/static.dot @@ -1,116 +1,116 @@ digraph iCFG { -31 [label="31: Return Stmt \n *&return:int =0 [line 69]\n APPLY_ABSTRACTION; [line 69]\n " shape="box"] +31 [label="31: Return Stmt \n *&return:int =0 [line 73]\n APPLY_ABSTRACTION; [line 73]\n " shape="box"] 31 -> 30 ; 30 [label="30: Exit main \n " color=yellow style=filled] -29 [label="29: Start main\nFormals: argc:int argv:char **\nLocals: \n DECLARE_LOCALS(&return); [line 67]\n NULLIFY(&argc,false); [line 67]\n NULLIFY(&argv,false); [line 67]\n " color=yellow style=filled] +29 [label="29: Start main\nFormals: argc:int argv:char **\nLocals: \n DECLARE_LOCALS(&return); [line 71]\n NULLIFY(&argc,false); [line 71]\n NULLIFY(&argv,false); [line 71]\n " color=yellow style=filled] 29 -> 31 ; -28 [label="28: Call (_fun___objc_anonymous_block_A_test3______4) \n DECLARE_LOCALS(&__objc_anonymous_block_A_test3______4); [line 55]\n n$17=_fun___objc_alloc_no_fail(sizeof(class __objc_anonymous_block_A_test3______4 ):class __objc_anonymous_block_A_test3______4 *) [line 55]\n *&__objc_anonymous_block_A_test3______4:class __objc_anonymous_block_A_test3______4 =n$17 [line 55]\n (_fun___objc_anonymous_block_A_test3______4)() [line 55]\n REMOVE_TEMPS(n$17); [line 55]\n " shape="box"] +28 [label="28: Call (_fun___objc_anonymous_block_A_test3______4) \n DECLARE_LOCALS(&__objc_anonymous_block_A_test3______4); [line 59]\n n$17=_fun___objc_alloc_no_fail(sizeof(class __objc_anonymous_block_A_test3______4 ):class __objc_anonymous_block_A_test3______4 *) [line 59]\n *&__objc_anonymous_block_A_test3______4:class __objc_anonymous_block_A_test3______4 =n$17 [line 59]\n (_fun___objc_anonymous_block_A_test3______4)() [line 59]\n REMOVE_TEMPS(n$17); [line 59]\n " shape="box"] 28 -> 24 ; -27 [label="27: UnaryOperator \n n$16=*&#GB$A_test3_i:int [line 57]\n *&#GB$A_test3_i:int =(n$16 + 1) [line 57]\n REMOVE_TEMPS(n$16); [line 57]\n APPLY_ABSTRACTION; [line 57]\n " shape="box"] +27 [label="27: UnaryOperator \n n$16=*&#GB$A_test3_i:int [line 61]\n *&#GB$A_test3_i:int =(n$16 + 1) [line 61]\n REMOVE_TEMPS(n$16); [line 61]\n APPLY_ABSTRACTION; [line 61]\n " shape="box"] 27 -> 26 ; 26 [label="26: Exit __objc_anonymous_block_A_test3______4 \n " color=yellow style=filled] -25 [label="25: Start __objc_anonymous_block_A_test3______4\nFormals: \nLocals: \n DECLARE_LOCALS(&return); [line 55]\n " color=yellow style=filled] +25 [label="25: Start __objc_anonymous_block_A_test3______4\nFormals: \nLocals: \n DECLARE_LOCALS(&return); [line 59]\n " color=yellow style=filled] 25 -> 27 ; -24 [label="24: Return Stmt \n n$15=*&#GB$A_test3_i:int [line 60]\n *&return:int =n$15 [line 60]\n REMOVE_TEMPS(n$15); [line 60]\n NULLIFY(&__objc_anonymous_block_A_test3______4,true); [line 60]\n APPLY_ABSTRACTION; [line 60]\n " shape="box"] +24 [label="24: Return Stmt \n n$15=*&#GB$A_test3_i:int [line 64]\n *&return:int =n$15 [line 64]\n REMOVE_TEMPS(n$15); [line 64]\n NULLIFY(&__objc_anonymous_block_A_test3______4,true); [line 64]\n APPLY_ABSTRACTION; [line 64]\n " shape="box"] 24 -> 23 ; 23 [label="23: Exit A_test3 \n " color=yellow style=filled] -22 [label="22: Start A_test3\nFormals: \nLocals: \n DECLARE_LOCALS(&return); [line 51]\n " color=yellow style=filled] +22 [label="22: Start A_test3\nFormals: \nLocals: \n DECLARE_LOCALS(&return); [line 55]\n " color=yellow style=filled] 22 -> 28 ; -21 [label="21: BinaryOperatorStmt: Assign \n n$14=_fun___objc_alloc_no_fail(sizeof(class A ):class A *) [line 39]\n n$12=_fun_A_init(n$14:class A *) virtual [line 39]\n *&#GB$A_test2_sharedInstance:struct objc_object *=n$12 [line 39]\n REMOVE_TEMPS(n$12,n$14); [line 39]\n " shape="box"] +21 [label="21: BinaryOperatorStmt: Assign \n n$14=_fun___objc_alloc_no_fail(sizeof(class A ):class A *) [line 43]\n n$12=_fun_A_init(n$14:class A *) virtual [line 43]\n *&#GB$A_test2_sharedInstance:struct objc_object *=n$12 [line 43]\n REMOVE_TEMPS(n$12,n$14); [line 43]\n " shape="box"] 21 -> 20 ; -20 [label="20: Call (_fun___objc_anonymous_block_A_test2______3) \n DECLARE_LOCALS(&__objc_anonymous_block_A_test2______3); [line 40]\n n$11=_fun___objc_alloc_no_fail(sizeof(class __objc_anonymous_block_A_test2______3 ):class __objc_anonymous_block_A_test2______3 *) [line 40]\n *&__objc_anonymous_block_A_test2______3:class __objc_anonymous_block_A_test2______3 =n$11 [line 40]\n (_fun___objc_anonymous_block_A_test2______3)() [line 40]\n REMOVE_TEMPS(n$11); [line 40]\n " shape="box"] +20 [label="20: Call (_fun___objc_anonymous_block_A_test2______3) \n DECLARE_LOCALS(&__objc_anonymous_block_A_test2______3); [line 44]\n n$11=_fun___objc_alloc_no_fail(sizeof(class __objc_anonymous_block_A_test2______3 ):class __objc_anonymous_block_A_test2______3 *) [line 44]\n *&__objc_anonymous_block_A_test2______3:class __objc_anonymous_block_A_test2______3 =n$11 [line 44]\n (_fun___objc_anonymous_block_A_test2______3)() [line 44]\n REMOVE_TEMPS(n$11); [line 44]\n " shape="box"] 20 -> 16 ; -19 [label="19: DeclStmt \n n$10=*&#GB$A_test2_sharedInstance:struct objc_object * [line 42]\n *&p:struct objc_object *=n$10 [line 42]\n REMOVE_TEMPS(n$10); [line 42]\n NULLIFY(&p,false); [line 42]\n APPLY_ABSTRACTION; [line 42]\n " shape="box"] +19 [label="19: DeclStmt \n n$10=*&#GB$A_test2_sharedInstance:struct objc_object * [line 46]\n *&p:struct objc_object *=n$10 [line 46]\n REMOVE_TEMPS(n$10); [line 46]\n NULLIFY(&p,false); [line 46]\n APPLY_ABSTRACTION; [line 46]\n " shape="box"] 19 -> 18 ; 18 [label="18: Exit __objc_anonymous_block_A_test2______3 \n " color=yellow style=filled] -17 [label="17: Start __objc_anonymous_block_A_test2______3\nFormals: \nLocals: p:struct objc_object * \n DECLARE_LOCALS(&return,&p); [line 40]\n NULLIFY(&p,false); [line 40]\n " color=yellow style=filled] +17 [label="17: Start __objc_anonymous_block_A_test2______3\nFormals: \nLocals: p:struct objc_object * \n DECLARE_LOCALS(&return,&p); [line 44]\n NULLIFY(&p,false); [line 44]\n " color=yellow style=filled] 17 -> 19 ; -16 [label="16: Return Stmt \n n$9=*&#GB$A_test2_sharedInstance:struct objc_object * [line 45]\n *&return:struct objc_object *=n$9 [line 45]\n REMOVE_TEMPS(n$9); [line 45]\n NULLIFY(&__objc_anonymous_block_A_test2______3,true); [line 45]\n APPLY_ABSTRACTION; [line 45]\n " shape="box"] +16 [label="16: Return Stmt \n n$9=*&#GB$A_test2_sharedInstance:struct objc_object * [line 49]\n *&return:struct objc_object *=n$9 [line 49]\n REMOVE_TEMPS(n$9); [line 49]\n NULLIFY(&__objc_anonymous_block_A_test2______3,true); [line 49]\n APPLY_ABSTRACTION; [line 49]\n " shape="box"] 16 -> 15 ; 15 [label="15: Exit A_test2 \n " color=yellow style=filled] -14 [label="14: Start A_test2\nFormals: \nLocals: \n DECLARE_LOCALS(&return); [line 36]\n " color=yellow style=filled] +14 [label="14: Start A_test2\nFormals: \nLocals: \n DECLARE_LOCALS(&return); [line 40]\n " color=yellow style=filled] 14 -> 21 ; -13 [label="13: Call (_fun___objc_anonymous_block_A_test_leak______2) \n DECLARE_LOCALS(&__objc_anonymous_block_A_test_leak______2); [line 28]\n n$8=_fun___objc_alloc_no_fail(sizeof(class __objc_anonymous_block_A_test_leak______2 ):class __objc_anonymous_block_A_test_leak______2 *) [line 28]\n *&__objc_anonymous_block_A_test_leak______2:class __objc_anonymous_block_A_test_leak______2 =n$8 [line 28]\n (_fun___objc_anonymous_block_A_test_leak______2)() [line 28]\n REMOVE_TEMPS(n$8); [line 28]\n NULLIFY(&__objc_anonymous_block_A_test_leak______2,true); [line 28]\n APPLY_ABSTRACTION; [line 28]\n " shape="box"] +13 [label="13: Call (_fun___objc_anonymous_block_A_test_leak______2) \n DECLARE_LOCALS(&__objc_anonymous_block_A_test_leak______2); [line 32]\n n$8=_fun___objc_alloc_no_fail(sizeof(class __objc_anonymous_block_A_test_leak______2 ):class __objc_anonymous_block_A_test_leak______2 *) [line 32]\n *&__objc_anonymous_block_A_test_leak______2:class __objc_anonymous_block_A_test_leak______2 =n$8 [line 32]\n (_fun___objc_anonymous_block_A_test_leak______2)() [line 32]\n REMOVE_TEMPS(n$8); [line 32]\n NULLIFY(&__objc_anonymous_block_A_test_leak______2,true); [line 32]\n APPLY_ABSTRACTION; [line 32]\n " shape="box"] 13 -> 9 ; -12 [label="12: BinaryOperatorStmt: Assign \n n$7=_fun___objc_alloc_no_fail(sizeof(class A ):class A *) [line 29]\n n$5=_fun_A_init(n$7:class A *) virtual [line 29]\n *&#GB$A_test_leak_sharedInstance:struct objc_object *=n$5 [line 29]\n REMOVE_TEMPS(n$5,n$7); [line 29]\n APPLY_ABSTRACTION; [line 29]\n " shape="box"] +12 [label="12: BinaryOperatorStmt: Assign \n n$7=_fun___objc_alloc_no_fail(sizeof(class A ):class A *) [line 33]\n n$5=_fun_A_init(n$7:class A *) virtual [line 33]\n *&#GB$A_test_leak_sharedInstance:struct objc_object *=n$5 [line 33]\n REMOVE_TEMPS(n$5,n$7); [line 33]\n APPLY_ABSTRACTION; [line 33]\n " shape="box"] 12 -> 11 ; 11 [label="11: Exit __objc_anonymous_block_A_test_leak______2 \n " color=yellow style=filled] -10 [label="10: Start __objc_anonymous_block_A_test_leak______2\nFormals: \nLocals: \n DECLARE_LOCALS(&return); [line 28]\n " color=yellow style=filled] +10 [label="10: Start __objc_anonymous_block_A_test_leak______2\nFormals: \nLocals: \n DECLARE_LOCALS(&return); [line 32]\n " color=yellow style=filled] 10 -> 12 ; 9 [label="9: Exit A_test_leak \n " color=yellow style=filled] -8 [label="8: Start A_test_leak\nFormals: \nLocals: \n DECLARE_LOCALS(&return); [line 25]\n " color=yellow style=filled] +8 [label="8: Start A_test_leak\nFormals: \nLocals: \n DECLARE_LOCALS(&return); [line 29]\n " color=yellow style=filled] 8 -> 13 ; -7 [label="7: Call (_fun___objc_anonymous_block_A_test______1) \n DECLARE_LOCALS(&__objc_anonymous_block_A_test______1); [line 17]\n n$4=_fun___objc_alloc_no_fail(sizeof(class __objc_anonymous_block_A_test______1 ):class __objc_anonymous_block_A_test______1 *) [line 17]\n *&__objc_anonymous_block_A_test______1:class __objc_anonymous_block_A_test______1 =n$4 [line 17]\n (_fun___objc_anonymous_block_A_test______1)() [line 17]\n REMOVE_TEMPS(n$4); [line 17]\n " shape="box"] +7 [label="7: Call (_fun___objc_anonymous_block_A_test______1) \n DECLARE_LOCALS(&__objc_anonymous_block_A_test______1); [line 21]\n n$4=_fun___objc_alloc_no_fail(sizeof(class __objc_anonymous_block_A_test______1 ):class __objc_anonymous_block_A_test______1 *) [line 21]\n *&__objc_anonymous_block_A_test______1:class __objc_anonymous_block_A_test______1 =n$4 [line 21]\n (_fun___objc_anonymous_block_A_test______1)() [line 21]\n REMOVE_TEMPS(n$4); [line 21]\n " shape="box"] 7 -> 3 ; -6 [label="6: BinaryOperatorStmt: Assign \n n$3=_fun___objc_alloc_no_fail(sizeof(class A ):class A *) [line 18]\n n$1=_fun_A_init(n$3:class A *) virtual [line 18]\n *&#GB$A_test_sharedInstance:struct objc_object *=n$1 [line 18]\n REMOVE_TEMPS(n$1,n$3); [line 18]\n APPLY_ABSTRACTION; [line 18]\n " shape="box"] +6 [label="6: BinaryOperatorStmt: Assign \n n$3=_fun___objc_alloc_no_fail(sizeof(class A ):class A *) [line 22]\n n$1=_fun_A_init(n$3:class A *) virtual [line 22]\n *&#GB$A_test_sharedInstance:struct objc_object *=n$1 [line 22]\n REMOVE_TEMPS(n$1,n$3); [line 22]\n APPLY_ABSTRACTION; [line 22]\n " shape="box"] 6 -> 5 ; 5 [label="5: Exit __objc_anonymous_block_A_test______1 \n " color=yellow style=filled] -4 [label="4: Start __objc_anonymous_block_A_test______1\nFormals: \nLocals: \n DECLARE_LOCALS(&return); [line 17]\n " color=yellow style=filled] +4 [label="4: Start __objc_anonymous_block_A_test______1\nFormals: \nLocals: \n DECLARE_LOCALS(&return); [line 21]\n " color=yellow style=filled] 4 -> 6 ; -3 [label="3: Return Stmt \n n$0=*&#GB$A_test_sharedInstance:struct objc_object * [line 22]\n *&return:struct objc_object *=n$0 [line 22]\n REMOVE_TEMPS(n$0); [line 22]\n NULLIFY(&__objc_anonymous_block_A_test______1,true); [line 22]\n APPLY_ABSTRACTION; [line 22]\n " shape="box"] +3 [label="3: Return Stmt \n n$0=*&#GB$A_test_sharedInstance:struct objc_object * [line 26]\n *&return:struct objc_object *=n$0 [line 26]\n REMOVE_TEMPS(n$0); [line 26]\n NULLIFY(&__objc_anonymous_block_A_test______1,true); [line 26]\n APPLY_ABSTRACTION; [line 26]\n " shape="box"] 3 -> 2 ; 2 [label="2: Exit A_test \n " color=yellow style=filled] -1 [label="1: Start A_test\nFormals: \nLocals: \n DECLARE_LOCALS(&return); [line 14]\n " color=yellow style=filled] +1 [label="1: Start A_test\nFormals: \nLocals: \n DECLARE_LOCALS(&return); [line 18]\n " color=yellow style=filled] 1 -> 7 ; diff --git a/infer/tests/codetoanalyze/objc/frontend/block/static.m b/infer/tests/codetoanalyze/objc/frontend/block/static.m index 20900606c..9b64f50c3 100644 --- a/infer/tests/codetoanalyze/objc/frontend/block/static.m +++ b/infer/tests/codetoanalyze/objc/frontend/block/static.m @@ -1,6 +1,10 @@ /* - * Copyright (c) 2014 - Facebook. - * All rights reserved. +* Copyright (c) 2014 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ #import diff --git a/infer/tests/codetoanalyze/objc/frontend/boxing/Boxing.dot b/infer/tests/codetoanalyze/objc/frontend/boxing/Boxing.dot index 649d4675b..5a8b9b94d 100644 --- a/infer/tests/codetoanalyze/objc/frontend/boxing/Boxing.dot +++ b/infer/tests/codetoanalyze/objc/frontend/boxing/Boxing.dot @@ -1,99 +1,99 @@ digraph iCFG { -26 [label="26: DeclStmt \n n$16=_fun_strdup(\"hello world\":char *) [line 38]\n n$15=_fun_NSString_stringWithUTF8String:(n$16:char *) [line 38]\n *&s:class NSString *=n$15 [line 38]\n REMOVE_TEMPS(n$15,n$16); [line 38]\n NULLIFY(&s,false); [line 38]\n " shape="box"] +26 [label="26: DeclStmt \n n$16=_fun_strdup(\"hello world\":char *) [line 42]\n n$15=_fun_NSString_stringWithUTF8String:(n$16:char *) [line 42]\n *&s:class NSString *=n$15 [line 42]\n REMOVE_TEMPS(n$15,n$16); [line 42]\n NULLIFY(&s,false); [line 42]\n " shape="box"] 26 -> 25 ; -25 [label="25: Return Stmt \n n$14=_fun_NSString_stringWithUTF8String:(\"hello world\":char *) [line 39]\n *&return:class NSString *=n$14 [line 39]\n REMOVE_TEMPS(n$14); [line 39]\n APPLY_ABSTRACTION; [line 39]\n " shape="box"] +25 [label="25: Return Stmt \n n$14=_fun_NSString_stringWithUTF8String:(\"hello world\":char *) [line 43]\n *&return:class NSString *=n$14 [line 43]\n REMOVE_TEMPS(n$14); [line 43]\n APPLY_ABSTRACTION; [line 43]\n " shape="box"] 25 -> 24 ; 24 [label="24: Exit Boxing_getS \n " color=yellow style=filled] -23 [label="23: Start Boxing_getS\nFormals: self:class Boxing *\nLocals: s:class NSString * \n DECLARE_LOCALS(&return,&s); [line 37]\n NULLIFY(&s,false); [line 37]\n NULLIFY(&self,false); [line 37]\n " color=yellow style=filled] +23 [label="23: Start Boxing_getS\nFormals: self:class Boxing *\nLocals: s:class NSString * \n DECLARE_LOCALS(&return,&s); [line 41]\n NULLIFY(&s,false); [line 41]\n NULLIFY(&self,false); [line 41]\n " color=yellow style=filled] 23 -> 26 ; -22 [label="22: DeclStmt \n n$13=_fun_NSNumber_numberWithBool:(1:signed char ) [line 33]\n *&n:class NSNumber *=n$13 [line 33]\n REMOVE_TEMPS(n$13); [line 33]\n NULLIFY(&n,false); [line 33]\n " shape="box"] +22 [label="22: DeclStmt \n n$13=_fun_NSNumber_numberWithBool:(1:signed char ) [line 37]\n *&n:class NSNumber *=n$13 [line 37]\n REMOVE_TEMPS(n$13); [line 37]\n NULLIFY(&n,false); [line 37]\n " shape="box"] 22 -> 21 ; -21 [label="21: Return Stmt \n n$12=_fun_NSNumber_numberWithBool:(1:signed char ) [line 34]\n *&return:class NSNumber *=n$12 [line 34]\n REMOVE_TEMPS(n$12); [line 34]\n APPLY_ABSTRACTION; [line 34]\n " shape="box"] +21 [label="21: Return Stmt \n n$12=_fun_NSNumber_numberWithBool:(1:signed char ) [line 38]\n *&return:class NSNumber *=n$12 [line 38]\n REMOVE_TEMPS(n$12); [line 38]\n APPLY_ABSTRACTION; [line 38]\n " shape="box"] 21 -> 20 ; 20 [label="20: Exit Boxing_getBool \n " color=yellow style=filled] -19 [label="19: Start Boxing_getBool\nFormals: self:class Boxing *\nLocals: n:class NSNumber * \n DECLARE_LOCALS(&return,&n); [line 32]\n NULLIFY(&n,false); [line 32]\n NULLIFY(&self,false); [line 32]\n " color=yellow style=filled] +19 [label="19: Start Boxing_getBool\nFormals: self:class Boxing *\nLocals: n:class NSNumber * \n DECLARE_LOCALS(&return,&n); [line 36]\n NULLIFY(&n,false); [line 36]\n NULLIFY(&self,false); [line 36]\n " color=yellow style=filled] 19 -> 22 ; -18 [label="18: DeclStmt \n n$11=_fun_NSNumber_numberWithDouble:(1.500000:double ) [line 28]\n *&n:class NSNumber *=n$11 [line 28]\n REMOVE_TEMPS(n$11); [line 28]\n NULLIFY(&n,false); [line 28]\n " shape="box"] +18 [label="18: DeclStmt \n n$11=_fun_NSNumber_numberWithDouble:(1.500000:double ) [line 32]\n *&n:class NSNumber *=n$11 [line 32]\n REMOVE_TEMPS(n$11); [line 32]\n NULLIFY(&n,false); [line 32]\n " shape="box"] 18 -> 17 ; -17 [label="17: Return Stmt \n n$10=_fun_NSNumber_numberWithDouble:(1.500000:double ) [line 29]\n *&return:class NSNumber *=n$10 [line 29]\n REMOVE_TEMPS(n$10); [line 29]\n APPLY_ABSTRACTION; [line 29]\n " shape="box"] +17 [label="17: Return Stmt \n n$10=_fun_NSNumber_numberWithDouble:(1.500000:double ) [line 33]\n *&return:class NSNumber *=n$10 [line 33]\n REMOVE_TEMPS(n$10); [line 33]\n APPLY_ABSTRACTION; [line 33]\n " shape="box"] 17 -> 16 ; 16 [label="16: Exit Boxing_getDouble \n " color=yellow style=filled] -15 [label="15: Start Boxing_getDouble\nFormals: self:class Boxing *\nLocals: n:class NSNumber * \n DECLARE_LOCALS(&return,&n); [line 27]\n NULLIFY(&n,false); [line 27]\n NULLIFY(&self,false); [line 27]\n " color=yellow style=filled] +15 [label="15: Start Boxing_getDouble\nFormals: self:class Boxing *\nLocals: n:class NSNumber * \n DECLARE_LOCALS(&return,&n); [line 31]\n NULLIFY(&n,false); [line 31]\n NULLIFY(&self,false); [line 31]\n " color=yellow style=filled] 15 -> 18 ; -14 [label="14: DeclStmt \n n$9=_fun_NSNumber_numberWithFloat:(1.500000:float ) [line 23]\n *&n:class NSNumber *=n$9 [line 23]\n REMOVE_TEMPS(n$9); [line 23]\n NULLIFY(&n,false); [line 23]\n " shape="box"] +14 [label="14: DeclStmt \n n$9=_fun_NSNumber_numberWithFloat:(1.500000:float ) [line 27]\n *&n:class NSNumber *=n$9 [line 27]\n REMOVE_TEMPS(n$9); [line 27]\n NULLIFY(&n,false); [line 27]\n " shape="box"] 14 -> 13 ; -13 [label="13: Return Stmt \n n$8=_fun_NSNumber_numberWithFloat:(1.500000:float ) [line 24]\n *&return:class NSNumber *=n$8 [line 24]\n REMOVE_TEMPS(n$8); [line 24]\n APPLY_ABSTRACTION; [line 24]\n " shape="box"] +13 [label="13: Return Stmt \n n$8=_fun_NSNumber_numberWithFloat:(1.500000:float ) [line 28]\n *&return:class NSNumber *=n$8 [line 28]\n REMOVE_TEMPS(n$8); [line 28]\n APPLY_ABSTRACTION; [line 28]\n " shape="box"] 13 -> 12 ; 12 [label="12: Exit Boxing_getFloat \n " color=yellow style=filled] -11 [label="11: Start Boxing_getFloat\nFormals: self:class Boxing *\nLocals: n:class NSNumber * \n DECLARE_LOCALS(&return,&n); [line 22]\n NULLIFY(&n,false); [line 22]\n NULLIFY(&self,false); [line 22]\n " color=yellow style=filled] +11 [label="11: Start Boxing_getFloat\nFormals: self:class Boxing *\nLocals: n:class NSNumber * \n DECLARE_LOCALS(&return,&n); [line 26]\n NULLIFY(&n,false); [line 26]\n NULLIFY(&self,false); [line 26]\n " color=yellow style=filled] 11 -> 14 ; -10 [label="10: DeclStmt \n n$7=_fun_NSNumber_numberWithInt:(5:int ) [line 18]\n *&n:class NSNumber *=n$7 [line 18]\n REMOVE_TEMPS(n$7); [line 18]\n NULLIFY(&n,false); [line 18]\n " shape="box"] +10 [label="10: DeclStmt \n n$7=_fun_NSNumber_numberWithInt:(5:int ) [line 22]\n *&n:class NSNumber *=n$7 [line 22]\n REMOVE_TEMPS(n$7); [line 22]\n NULLIFY(&n,false); [line 22]\n " shape="box"] 10 -> 9 ; -9 [label="9: Return Stmt \n n$6=_fun_NSNumber_numberWithInt:(5:int ) [line 19]\n *&return:class NSNumber *=n$6 [line 19]\n REMOVE_TEMPS(n$6); [line 19]\n APPLY_ABSTRACTION; [line 19]\n " shape="box"] +9 [label="9: Return Stmt \n n$6=_fun_NSNumber_numberWithInt:(5:int ) [line 23]\n *&return:class NSNumber *=n$6 [line 23]\n REMOVE_TEMPS(n$6); [line 23]\n APPLY_ABSTRACTION; [line 23]\n " shape="box"] 9 -> 8 ; 8 [label="8: Exit Boxing_getInt \n " color=yellow style=filled] -7 [label="7: Start Boxing_getInt\nFormals: self:class Boxing *\nLocals: n:class NSNumber * \n DECLARE_LOCALS(&return,&n); [line 17]\n NULLIFY(&n,false); [line 17]\n NULLIFY(&self,false); [line 17]\n " color=yellow style=filled] +7 [label="7: Start Boxing_getInt\nFormals: self:class Boxing *\nLocals: n:class NSNumber * \n DECLARE_LOCALS(&return,&n); [line 21]\n NULLIFY(&n,false); [line 21]\n NULLIFY(&self,false); [line 21]\n " color=yellow style=filled] 7 -> 10 ; -6 [label="6: DeclStmt \n *&x:int =4 [line 11]\n " shape="box"] +6 [label="6: DeclStmt \n *&x:int =4 [line 15]\n " shape="box"] 6 -> 5 ; -5 [label="5: DeclStmt \n *&y:int =5 [line 12]\n " shape="box"] +5 [label="5: DeclStmt \n *&y:int =5 [line 16]\n " shape="box"] 5 -> 4 ; -4 [label="4: DeclStmt \n n$4=*&x:int [line 13]\n n$5=*&y:int [line 13]\n n$3=_fun_NSNumber_numberWithInt:((n$4 + n$5):int ) [line 13]\n *&n:class NSNumber *=n$3 [line 13]\n REMOVE_TEMPS(n$3,n$4,n$5); [line 13]\n NULLIFY(&n,false); [line 13]\n " shape="box"] +4 [label="4: DeclStmt \n n$4=*&x:int [line 17]\n n$5=*&y:int [line 17]\n n$3=_fun_NSNumber_numberWithInt:((n$4 + n$5):int ) [line 17]\n *&n:class NSNumber *=n$3 [line 17]\n REMOVE_TEMPS(n$3,n$4,n$5); [line 17]\n NULLIFY(&n,false); [line 17]\n " shape="box"] 4 -> 3 ; -3 [label="3: Return Stmt \n n$1=*&x:int [line 14]\n n$2=*&y:int [line 14]\n n$0=_fun_NSNumber_numberWithInt:((n$1 + n$2):int ) [line 14]\n *&return:class NSNumber *=n$0 [line 14]\n REMOVE_TEMPS(n$0,n$1,n$2); [line 14]\n NULLIFY(&x,false); [line 14]\n NULLIFY(&y,false); [line 14]\n APPLY_ABSTRACTION; [line 14]\n " shape="box"] +3 [label="3: Return Stmt \n n$1=*&x:int [line 18]\n n$2=*&y:int [line 18]\n n$0=_fun_NSNumber_numberWithInt:((n$1 + n$2):int ) [line 18]\n *&return:class NSNumber *=n$0 [line 18]\n REMOVE_TEMPS(n$0,n$1,n$2); [line 18]\n NULLIFY(&x,false); [line 18]\n NULLIFY(&y,false); [line 18]\n APPLY_ABSTRACTION; [line 18]\n " shape="box"] 3 -> 2 ; 2 [label="2: Exit Boxing_getIntExp \n " color=yellow style=filled] -1 [label="1: Start Boxing_getIntExp\nFormals: self:class Boxing *\nLocals: x:int y:int n:class NSNumber * \n DECLARE_LOCALS(&return,&x,&y,&n); [line 10]\n NULLIFY(&n,false); [line 10]\n NULLIFY(&self,false); [line 10]\n NULLIFY(&x,false); [line 10]\n NULLIFY(&y,false); [line 10]\n " color=yellow style=filled] +1 [label="1: Start Boxing_getIntExp\nFormals: self:class Boxing *\nLocals: x:int y:int n:class NSNumber * \n DECLARE_LOCALS(&return,&x,&y,&n); [line 14]\n NULLIFY(&n,false); [line 14]\n NULLIFY(&self,false); [line 14]\n NULLIFY(&x,false); [line 14]\n NULLIFY(&y,false); [line 14]\n " color=yellow style=filled] 1 -> 6 ; diff --git a/infer/tests/codetoanalyze/objc/frontend/boxing/Boxing.h b/infer/tests/codetoanalyze/objc/frontend/boxing/Boxing.h index 3e7f5a27e..0274063d8 100644 --- a/infer/tests/codetoanalyze/objc/frontend/boxing/Boxing.h +++ b/infer/tests/codetoanalyze/objc/frontend/boxing/Boxing.h @@ -1,6 +1,10 @@ /* - * Copyright (c) 2014 - Facebook. - * All rights reserved. +* Copyright (c) 2014 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ #import diff --git a/infer/tests/codetoanalyze/objc/frontend/boxing/Boxing.m b/infer/tests/codetoanalyze/objc/frontend/boxing/Boxing.m index dba81f2a0..9e1900899 100644 --- a/infer/tests/codetoanalyze/objc/frontend/boxing/Boxing.m +++ b/infer/tests/codetoanalyze/objc/frontend/boxing/Boxing.m @@ -1,6 +1,10 @@ /* - * Copyright (c) 2014 - Facebook. - * All rights reserved. +* Copyright (c) 2014 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ #import "Boxing.h" diff --git a/infer/tests/codetoanalyze/objc/frontend/boxing/array.dot b/infer/tests/codetoanalyze/objc/frontend/boxing/array.dot index 809567dd2..8ea5ed515 100644 --- a/infer/tests/codetoanalyze/objc/frontend/boxing/array.dot +++ b/infer/tests/codetoanalyze/objc/frontend/boxing/array.dot @@ -1,25 +1,25 @@ digraph iCFG { -10 [label="10: DeclStmt \n n$8=_fun_NSString_stringWithUTF8String:(\"Mercedes-Benz\":char *) [line 14]\n n$9=_fun_NSString_stringWithUTF8String:(\"BMW\":char *) [line 14]\n n$10=_fun_NSString_stringWithUTF8String:(\"Porsche\":char *) [line 14]\n n$11=_fun_NSString_stringWithUTF8String:(\"Opel\":char *) [line 15]\n n$12=_fun_NSString_stringWithUTF8String:(\"Volkswagen\":char *) [line 15]\n n$13=_fun_NSString_stringWithUTF8String:(\"Audi\":char *) [line 15]\n n$7=_fun_NSArray_arrayWithObjects:count:(n$8:struct objc_object *,n$9:struct objc_object *,n$10:struct objc_object *,n$11:struct objc_object *,n$12:struct objc_object *,n$13:struct objc_object *,0:struct objc_object *) [line 14]\n *&germanCars:class NSArray *=n$7 [line 14]\n REMOVE_TEMPS(n$7,n$8,n$9,n$10,n$11,n$12,n$13); [line 14]\n " shape="box"] +10 [label="10: DeclStmt \n n$8=_fun_NSString_stringWithUTF8String:(\"Mercedes-Benz\":char *) [line 18]\n n$9=_fun_NSString_stringWithUTF8String:(\"BMW\":char *) [line 18]\n n$10=_fun_NSString_stringWithUTF8String:(\"Porsche\":char *) [line 18]\n n$11=_fun_NSString_stringWithUTF8String:(\"Opel\":char *) [line 19]\n n$12=_fun_NSString_stringWithUTF8String:(\"Volkswagen\":char *) [line 19]\n n$13=_fun_NSString_stringWithUTF8String:(\"Audi\":char *) [line 19]\n n$7=_fun_NSArray_arrayWithObjects:count:(n$8:struct objc_object *,n$9:struct objc_object *,n$10:struct objc_object *,n$11:struct objc_object *,n$12:struct objc_object *,n$13:struct objc_object *,0:struct objc_object *) [line 18]\n *&germanCars:class NSArray *=n$7 [line 18]\n REMOVE_TEMPS(n$7,n$8,n$9,n$10,n$11,n$12,n$13); [line 18]\n " shape="box"] 10 -> 9 ; -9 [label="9: BinaryOperatorStmt: Assign \n n$6=*&germanCars:class NSArray * [line 16]\n n$5=_fun_NSArray_objectAtIndexedSubscript:(n$6:class NSArray *,3:unsigned long ) virtual [line 16]\n *&s:class NSString *=n$5 [line 16]\n REMOVE_TEMPS(n$5,n$6); [line 16]\n NULLIFY(&s,false); [line 16]\n APPLY_ABSTRACTION; [line 16]\n " shape="box"] +9 [label="9: BinaryOperatorStmt: Assign \n n$6=*&germanCars:class NSArray * [line 20]\n n$5=_fun_NSArray_objectAtIndexedSubscript:(n$6:class NSArray *,3:unsigned long ) virtual [line 20]\n *&s:class NSString *=n$5 [line 20]\n REMOVE_TEMPS(n$5,n$6); [line 20]\n NULLIFY(&s,false); [line 20]\n APPLY_ABSTRACTION; [line 20]\n " shape="box"] 9 -> 4 ; -8 [label="8: Call _fun_NSLog \n n$3=_fun_NSString_stringWithUTF8String:(\"%@\":char *) [line 19]\n n$4=*&item:class NSString * [line 19]\n _fun_NSLog(n$3:struct objc_object *,n$4:class NSString *) [line 19]\n REMOVE_TEMPS(n$3,n$4); [line 19]\n NULLIFY(&item,false); [line 19]\n APPLY_ABSTRACTION; [line 19]\n " shape="box"] +8 [label="8: Call _fun_NSLog \n n$3=_fun_NSString_stringWithUTF8String:(\"%@\":char *) [line 23]\n n$4=*&item:class NSString * [line 23]\n _fun_NSLog(n$3:struct objc_object *,n$4:class NSString *) [line 23]\n REMOVE_TEMPS(n$3,n$4); [line 23]\n NULLIFY(&item,false); [line 23]\n APPLY_ABSTRACTION; [line 23]\n " shape="box"] 8 -> 4 ; -7 [label="7: Prune (false branch) \n PRUNE((n$2 == 0), false); [line 18]\n REMOVE_TEMPS(n$0,n$1,n$2); [line 18]\n " shape="invhouse"] +7 [label="7: Prune (false branch) \n PRUNE((n$2 == 0), false); [line 22]\n REMOVE_TEMPS(n$0,n$1,n$2); [line 22]\n " shape="invhouse"] 7 -> 3 ; -6 [label="6: Prune (true branch) \n PRUNE((n$2 != 0), true); [line 18]\n REMOVE_TEMPS(n$0,n$1,n$2); [line 18]\n " shape="invhouse"] +6 [label="6: Prune (true branch) \n PRUNE((n$2 != 0), true); [line 22]\n REMOVE_TEMPS(n$0,n$1,n$2); [line 22]\n " shape="invhouse"] 6 -> 8 ; -5 [label="5: BinaryOperatorStmt: Assign \n n$1=*&germanCars:class NSArray * [line 18]\n n$0=_fun_NSArray_nextObject(n$1:class NSArray *) virtual [line 18]\n *&item:class NSString *=n$0 [line 18]\n n$2=*&item:class NSString * [line 18]\n " shape="box"] +5 [label="5: BinaryOperatorStmt: Assign \n n$1=*&germanCars:class NSArray * [line 22]\n n$0=_fun_NSArray_nextObject(n$1:class NSArray *) virtual [line 22]\n *&item:class NSString *=n$0 [line 22]\n n$2=*&item:class NSString * [line 22]\n " shape="box"] 5 -> 6 ; @@ -28,14 +28,14 @@ digraph iCFG { 4 -> 5 ; -3 [label="3: Return Stmt \n NULLIFY(&germanCars,false); [line 22]\n NULLIFY(&item,false); [line 22]\n *&return:int =0 [line 22]\n APPLY_ABSTRACTION; [line 22]\n " shape="box"] +3 [label="3: Return Stmt \n NULLIFY(&germanCars,false); [line 26]\n NULLIFY(&item,false); [line 26]\n *&return:int =0 [line 26]\n APPLY_ABSTRACTION; [line 26]\n " shape="box"] 3 -> 2 ; 2 [label="2: Exit main \n " color=yellow style=filled] -1 [label="1: Start main\nFormals: \nLocals: s:class NSString * germanCars:class NSArray * item:class NSString * \n DECLARE_LOCALS(&return,&s,&germanCars,&item); [line 10]\n NULLIFY(&germanCars,false); [line 10]\n NULLIFY(&item,false); [line 10]\n NULLIFY(&s,false); [line 10]\n " color=yellow style=filled] +1 [label="1: Start main\nFormals: \nLocals: s:class NSString * germanCars:class NSArray * item:class NSString * \n DECLARE_LOCALS(&return,&s,&germanCars,&item); [line 14]\n NULLIFY(&germanCars,false); [line 14]\n NULLIFY(&item,false); [line 14]\n NULLIFY(&s,false); [line 14]\n " color=yellow style=filled] 1 -> 10 ; diff --git a/infer/tests/codetoanalyze/objc/frontend/boxing/array.m b/infer/tests/codetoanalyze/objc/frontend/boxing/array.m index 178d5634b..235dc4b6f 100644 --- a/infer/tests/codetoanalyze/objc/frontend/boxing/array.m +++ b/infer/tests/codetoanalyze/objc/frontend/boxing/array.m @@ -1,6 +1,10 @@ /* - * Copyright (c) 2014 - Facebook. - * All rights reserved. +* Copyright (c) 2014 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ #import diff --git a/infer/tests/codetoanalyze/objc/frontend/boxing/array_literal.c b/infer/tests/codetoanalyze/objc/frontend/boxing/array_literal.c index d9731bfa4..9afaf9dcd 100644 --- a/infer/tests/codetoanalyze/objc/frontend/boxing/array_literal.c +++ b/infer/tests/codetoanalyze/objc/frontend/boxing/array_literal.c @@ -1,6 +1,10 @@ /* - * Copyright (c) 2014 - Facebook. - * All rights reserved. +* Copyright (c) 2014 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ #import diff --git a/infer/tests/codetoanalyze/objc/frontend/boxing/array_literal.dot b/infer/tests/codetoanalyze/objc/frontend/boxing/array_literal.dot index a35a12239..e504d244c 100644 --- a/infer/tests/codetoanalyze/objc/frontend/boxing/array_literal.dot +++ b/infer/tests/codetoanalyze/objc/frontend/boxing/array_literal.dot @@ -1,16 +1,16 @@ digraph iCFG { -4 [label="4: DeclStmt \n n$4=_fun_NSString_stringWithUTF8String:(\"cat\":char *) [line 9]\n n$5=_fun_NSString_stringWithUTF8String:(\"dog\":char *) [line 9]\n n$3=_fun_NSArray_arrayWithObjects:(n$4:struct objc_object *,n$5:class NSString *,0:void *) [line 9]\n *&animals:class NSArray *=n$3 [line 9]\n REMOVE_TEMPS(n$3,n$4,n$5); [line 9]\n NULLIFY(&animals,false); [line 9]\n " shape="box"] +4 [label="4: DeclStmt \n n$4=_fun_NSString_stringWithUTF8String:(\"cat\":char *) [line 13]\n n$5=_fun_NSString_stringWithUTF8String:(\"dog\":char *) [line 13]\n n$3=_fun_NSArray_arrayWithObjects:(n$4:struct objc_object *,n$5:class NSString *,0:void *) [line 13]\n *&animals:class NSArray *=n$3 [line 13]\n REMOVE_TEMPS(n$3,n$4,n$5); [line 13]\n NULLIFY(&animals,false); [line 13]\n " shape="box"] 4 -> 3 ; -3 [label="3: Return Stmt \n n$1=_fun_NSString_stringWithUTF8String:(\"cat\":char *) [line 10]\n n$2=_fun_NSString_stringWithUTF8String:(\"dog\":char *) [line 10]\n n$0=_fun_NSArray_arrayWithObjects:count:(n$1:struct objc_object *,n$2:struct objc_object *,0:struct objc_object *) [line 10]\n *&return:class NSArray *=n$0 [line 10]\n REMOVE_TEMPS(n$0,n$1,n$2); [line 10]\n APPLY_ABSTRACTION; [line 10]\n " shape="box"] +3 [label="3: Return Stmt \n n$1=_fun_NSString_stringWithUTF8String:(\"cat\":char *) [line 14]\n n$2=_fun_NSString_stringWithUTF8String:(\"dog\":char *) [line 14]\n n$0=_fun_NSArray_arrayWithObjects:count:(n$1:struct objc_object *,n$2:struct objc_object *,0:struct objc_object *) [line 14]\n *&return:class NSArray *=n$0 [line 14]\n REMOVE_TEMPS(n$0,n$1,n$2); [line 14]\n APPLY_ABSTRACTION; [line 14]\n " shape="box"] 3 -> 2 ; 2 [label="2: Exit get_array \n " color=yellow style=filled] -1 [label="1: Start get_array\nFormals: \nLocals: animals:class NSArray * \n DECLARE_LOCALS(&return,&animals); [line 8]\n NULLIFY(&animals,false); [line 8]\n " color=yellow style=filled] +1 [label="1: Start get_array\nFormals: \nLocals: animals:class NSArray * \n DECLARE_LOCALS(&return,&animals); [line 12]\n NULLIFY(&animals,false); [line 12]\n " color=yellow style=filled] 1 -> 4 ; diff --git a/infer/tests/codetoanalyze/objc/frontend/boxing/dict_literal.c b/infer/tests/codetoanalyze/objc/frontend/boxing/dict_literal.c index cfe5210ca..5c4e7dbe7 100644 --- a/infer/tests/codetoanalyze/objc/frontend/boxing/dict_literal.c +++ b/infer/tests/codetoanalyze/objc/frontend/boxing/dict_literal.c @@ -1,6 +1,10 @@ /* - * Copyright (c) 2014 - Facebook. - * All rights reserved. +* Copyright (c) 2014 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ diff --git a/infer/tests/codetoanalyze/objc/frontend/boxing/dict_literal.dot b/infer/tests/codetoanalyze/objc/frontend/boxing/dict_literal.dot index 02368dc13..d20ea390c 100644 --- a/infer/tests/codetoanalyze/objc/frontend/boxing/dict_literal.dot +++ b/infer/tests/codetoanalyze/objc/frontend/boxing/dict_literal.dot @@ -1,23 +1,23 @@ digraph iCFG { -6 [label="6: Return Stmt \n n$8=_fun_NSString_stringWithUTF8String:(\"Matt\":char *) [line 19]\n n$9=_fun_NSString_stringWithUTF8String:(\"firstName\":char *) [line 19]\n n$10=_fun_NSString_stringWithUTF8String:(\"Galloway\":char *) [line 19]\n n$11=_fun_NSString_stringWithUTF8String:(\"lastName\":char *) [line 19]\n n$12=_fun_NSNumber_numberWithInt:(28:int ) [line 19]\n n$13=_fun_NSString_stringWithUTF8String:(\"age\":char *) [line 19]\n n$7=_fun_NSDictionary_dictionaryWithObjectsAndKeys:(n$8:struct objc_object *,n$9:struct objc_object *,n$10:struct objc_object *,n$11:struct objc_object *,n$12:struct objc_object *,n$13:struct objc_object *,0:struct objc_object *) [line 19]\n *&return:class NSDictionary *=n$7 [line 19]\n REMOVE_TEMPS(n$7,n$8,n$9,n$10,n$11,n$12,n$13); [line 19]\n APPLY_ABSTRACTION; [line 19]\n " shape="box"] +6 [label="6: Return Stmt \n n$8=_fun_NSString_stringWithUTF8String:(\"Matt\":char *) [line 23]\n n$9=_fun_NSString_stringWithUTF8String:(\"firstName\":char *) [line 23]\n n$10=_fun_NSString_stringWithUTF8String:(\"Galloway\":char *) [line 23]\n n$11=_fun_NSString_stringWithUTF8String:(\"lastName\":char *) [line 23]\n n$12=_fun_NSNumber_numberWithInt:(28:int ) [line 23]\n n$13=_fun_NSString_stringWithUTF8String:(\"age\":char *) [line 23]\n n$7=_fun_NSDictionary_dictionaryWithObjectsAndKeys:(n$8:struct objc_object *,n$9:struct objc_object *,n$10:struct objc_object *,n$11:struct objc_object *,n$12:struct objc_object *,n$13:struct objc_object *,0:struct objc_object *) [line 23]\n *&return:class NSDictionary *=n$7 [line 23]\n REMOVE_TEMPS(n$7,n$8,n$9,n$10,n$11,n$12,n$13); [line 23]\n APPLY_ABSTRACTION; [line 23]\n " shape="box"] 6 -> 5 ; 5 [label="5: Exit get_array2 \n " color=yellow style=filled] -4 [label="4: Start get_array2\nFormals: \nLocals: \n DECLARE_LOCALS(&return); [line 17]\n " color=yellow style=filled] +4 [label="4: Start get_array2\nFormals: \nLocals: \n DECLARE_LOCALS(&return); [line 21]\n " color=yellow style=filled] 4 -> 6 ; -3 [label="3: Return Stmt \n n$1=_fun_NSString_stringWithUTF8String:(\"Matt\":char *) [line 13]\n n$2=_fun_NSString_stringWithUTF8String:(\"firstName\":char *) [line 13]\n n$3=_fun_NSString_stringWithUTF8String:(\"Galloway\":char *) [line 13]\n n$4=_fun_NSString_stringWithUTF8String:(\"lastName\":char *) [line 13]\n n$5=_fun_NSNumber_numberWithInt:(28:int ) [line 14]\n n$6=_fun_NSString_stringWithUTF8String:(\"age\":char *) [line 14]\n n$0=_fun_NSDictionary_dictionaryWithObjectsAndKeys:(n$1:struct objc_object *,n$2:class NSString *,n$3:class NSString *,n$4:class NSString *,n$5:class NSNumber *,n$6:class NSString *,0:void *) [line 12]\n *&return:class NSDictionary *=n$0 [line 12]\n REMOVE_TEMPS(n$0,n$1,n$2,n$3,n$4,n$5,n$6); [line 12]\n APPLY_ABSTRACTION; [line 12]\n " shape="box"] +3 [label="3: Return Stmt \n n$1=_fun_NSString_stringWithUTF8String:(\"Matt\":char *) [line 17]\n n$2=_fun_NSString_stringWithUTF8String:(\"firstName\":char *) [line 17]\n n$3=_fun_NSString_stringWithUTF8String:(\"Galloway\":char *) [line 17]\n n$4=_fun_NSString_stringWithUTF8String:(\"lastName\":char *) [line 17]\n n$5=_fun_NSNumber_numberWithInt:(28:int ) [line 18]\n n$6=_fun_NSString_stringWithUTF8String:(\"age\":char *) [line 18]\n n$0=_fun_NSDictionary_dictionaryWithObjectsAndKeys:(n$1:struct objc_object *,n$2:class NSString *,n$3:class NSString *,n$4:class NSString *,n$5:class NSNumber *,n$6:class NSString *,0:void *) [line 16]\n *&return:class NSDictionary *=n$0 [line 16]\n REMOVE_TEMPS(n$0,n$1,n$2,n$3,n$4,n$5,n$6); [line 16]\n APPLY_ABSTRACTION; [line 16]\n " shape="box"] 3 -> 2 ; 2 [label="2: Exit get_array1 \n " color=yellow style=filled] -1 [label="1: Start get_array1\nFormals: \nLocals: \n DECLARE_LOCALS(&return); [line 10]\n " color=yellow style=filled] +1 [label="1: Start get_array1\nFormals: \nLocals: \n DECLARE_LOCALS(&return); [line 14]\n " color=yellow style=filled] 1 -> 3 ; diff --git a/infer/tests/codetoanalyze/objc/frontend/boxing/string_literal.c b/infer/tests/codetoanalyze/objc/frontend/boxing/string_literal.c index 88fa8329b..4e3b3b2bb 100644 --- a/infer/tests/codetoanalyze/objc/frontend/boxing/string_literal.c +++ b/infer/tests/codetoanalyze/objc/frontend/boxing/string_literal.c @@ -1,6 +1,10 @@ /* - * Copyright (c) 2014 - Facebook. - * All rights reserved. +* Copyright (c) 2014 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ #import diff --git a/infer/tests/codetoanalyze/objc/frontend/boxing/string_literal.dot b/infer/tests/codetoanalyze/objc/frontend/boxing/string_literal.dot index 6a4d97145..7dd9f7d17 100644 --- a/infer/tests/codetoanalyze/objc/frontend/boxing/string_literal.dot +++ b/infer/tests/codetoanalyze/objc/frontend/boxing/string_literal.dot @@ -1,23 +1,23 @@ digraph iCFG { -6 [label="6: Return Stmt \n n$1=_fun_NSString_stringWithUTF8String:(\"Hello World!\":char *) [line 15]\n *&return:class NSString *=n$1 [line 15]\n REMOVE_TEMPS(n$1); [line 15]\n APPLY_ABSTRACTION; [line 15]\n " shape="box"] +6 [label="6: Return Stmt \n n$1=_fun_NSString_stringWithUTF8String:(\"Hello World!\":char *) [line 19]\n *&return:class NSString *=n$1 [line 19]\n REMOVE_TEMPS(n$1); [line 19]\n APPLY_ABSTRACTION; [line 19]\n " shape="box"] 6 -> 5 ; 5 [label="5: Exit get_string2 \n " color=yellow style=filled] -4 [label="4: Start get_string2\nFormals: \nLocals: \n DECLARE_LOCALS(&return); [line 13]\n " color=yellow style=filled] +4 [label="4: Start get_string2\nFormals: \nLocals: \n DECLARE_LOCALS(&return); [line 17]\n " color=yellow style=filled] 4 -> 6 ; -3 [label="3: Return Stmt \n n$0=_fun_NSString_stringWithUTF8String:(\"Hello World!\":char *) [line 10]\n *&return:class NSString *=n$0 [line 10]\n REMOVE_TEMPS(n$0); [line 10]\n APPLY_ABSTRACTION; [line 10]\n " shape="box"] +3 [label="3: Return Stmt \n n$0=_fun_NSString_stringWithUTF8String:(\"Hello World!\":char *) [line 14]\n *&return:class NSString *=n$0 [line 14]\n REMOVE_TEMPS(n$0); [line 14]\n APPLY_ABSTRACTION; [line 14]\n " shape="box"] 3 -> 2 ; 2 [label="2: Exit get_string1 \n " color=yellow style=filled] -1 [label="1: Start get_string1\nFormals: \nLocals: \n DECLARE_LOCALS(&return); [line 8]\n " color=yellow style=filled] +1 [label="1: Start get_string1\nFormals: \nLocals: \n DECLARE_LOCALS(&return); [line 12]\n " color=yellow style=filled] 1 -> 3 ; diff --git a/infer/tests/codetoanalyze/objc/frontend/conditional_operation/ConditionalOperation.dot b/infer/tests/codetoanalyze/objc/frontend/conditional_operation/ConditionalOperation.dot index c5301db39..5c66835ea 100644 --- a/infer/tests/codetoanalyze/objc/frontend/conditional_operation/ConditionalOperation.dot +++ b/infer/tests/codetoanalyze/objc/frontend/conditional_operation/ConditionalOperation.dot @@ -1,17 +1,17 @@ digraph iCFG { -11 [label="11: ConditinalStmt Branch \n NULLIFY(&b,false); [line 20]\n DECLARE_LOCALS(&SIL_temp_conditional___7); [line 20]\n *&SIL_temp_conditional___7:int =1 [line 20]\n APPLY_ABSTRACTION; [line 20]\n " shape="box"] +11 [label="11: ConditinalStmt Branch \n NULLIFY(&b,false); [line 24]\n DECLARE_LOCALS(&SIL_temp_conditional___7); [line 24]\n *&SIL_temp_conditional___7:int =1 [line 24]\n APPLY_ABSTRACTION; [line 24]\n " shape="box"] 11 -> 7 ; -10 [label="10: ConditinalStmt Branch \n n$4=*&b:signed char [line 20]\n DECLARE_LOCALS(&SIL_temp_conditional___7); [line 20]\n *&SIL_temp_conditional___7:int =n$4 [line 20]\n REMOVE_TEMPS(n$4); [line 20]\n NULLIFY(&b,false); [line 20]\n APPLY_ABSTRACTION; [line 20]\n " shape="box"] +10 [label="10: ConditinalStmt Branch \n n$4=*&b:signed char [line 24]\n DECLARE_LOCALS(&SIL_temp_conditional___7); [line 24]\n *&SIL_temp_conditional___7:int =n$4 [line 24]\n REMOVE_TEMPS(n$4); [line 24]\n NULLIFY(&b,false); [line 24]\n APPLY_ABSTRACTION; [line 24]\n " shape="box"] 10 -> 7 ; -9 [label="9: Prune (false branch) \n n$3=*&b:signed char [line 20]\n PRUNE((n$3 == 0), false); [line 20]\n REMOVE_TEMPS(n$3); [line 20]\n " shape="invhouse"] +9 [label="9: Prune (false branch) \n n$3=*&b:signed char [line 24]\n PRUNE((n$3 == 0), false); [line 24]\n REMOVE_TEMPS(n$3); [line 24]\n " shape="invhouse"] 9 -> 11 ; -8 [label="8: Prune (true branch) \n n$3=*&b:signed char [line 20]\n PRUNE((n$3 != 0), true); [line 20]\n REMOVE_TEMPS(n$3); [line 20]\n " shape="invhouse"] +8 [label="8: Prune (true branch) \n n$3=*&b:signed char [line 24]\n PRUNE((n$3 != 0), true); [line 24]\n REMOVE_TEMPS(n$3); [line 24]\n " shape="invhouse"] 8 -> 10 ; @@ -19,26 +19,26 @@ digraph iCFG { 7 -> 6 ; -6 [label="6: Return Stmt \n n$2=*&self:class A * [line 20]\n n$5=*&SIL_temp_conditional___7:int [line 20]\n NULLIFY(&SIL_temp_conditional___7,true); [line 20]\n n$1=_fun_A_test4:(n$2:class A *,n$5:int ) virtual [line 20]\n *&return:int =n$1 [line 20]\n REMOVE_TEMPS(n$1,n$2,n$5); [line 20]\n NULLIFY(&self,false); [line 20]\n APPLY_ABSTRACTION; [line 20]\n " shape="box"] +6 [label="6: Return Stmt \n n$2=*&self:class A * [line 24]\n n$5=*&SIL_temp_conditional___7:int [line 24]\n NULLIFY(&SIL_temp_conditional___7,true); [line 24]\n n$1=_fun_A_test4:(n$2:class A *,n$5:int ) virtual [line 24]\n *&return:int =n$1 [line 24]\n REMOVE_TEMPS(n$1,n$2,n$5); [line 24]\n NULLIFY(&self,false); [line 24]\n APPLY_ABSTRACTION; [line 24]\n " shape="box"] 6 -> 5 ; 5 [label="5: Exit A_test5: \n " color=yellow style=filled] -4 [label="4: Start A_test5:\nFormals: self:class A * b:signed char \nLocals: \n DECLARE_LOCALS(&return); [line 19]\n " color=yellow style=filled] +4 [label="4: Start A_test5:\nFormals: self:class A * b:signed char \nLocals: \n DECLARE_LOCALS(&return); [line 23]\n " color=yellow style=filled] 4 -> 8 ; 4 -> 9 ; -3 [label="3: Return Stmt \n n$0=*&x:int [line 16]\n *&return:int =n$0 [line 16]\n REMOVE_TEMPS(n$0); [line 16]\n NULLIFY(&x,false); [line 16]\n APPLY_ABSTRACTION; [line 16]\n " shape="box"] +3 [label="3: Return Stmt \n n$0=*&x:int [line 20]\n *&return:int =n$0 [line 20]\n REMOVE_TEMPS(n$0); [line 20]\n NULLIFY(&x,false); [line 20]\n APPLY_ABSTRACTION; [line 20]\n " shape="box"] 3 -> 2 ; 2 [label="2: Exit A_test4: \n " color=yellow style=filled] -1 [label="1: Start A_test4:\nFormals: self:class A * x:int \nLocals: \n DECLARE_LOCALS(&return); [line 15]\n NULLIFY(&self,false); [line 15]\n " color=yellow style=filled] +1 [label="1: Start A_test4:\nFormals: self:class A * x:int \nLocals: \n DECLARE_LOCALS(&return); [line 19]\n NULLIFY(&self,false); [line 19]\n " color=yellow style=filled] 1 -> 3 ; diff --git a/infer/tests/codetoanalyze/objc/frontend/conditional_operation/ConditionalOperation.m b/infer/tests/codetoanalyze/objc/frontend/conditional_operation/ConditionalOperation.m index 471fa0a0c..3a7b72d43 100644 --- a/infer/tests/codetoanalyze/objc/frontend/conditional_operation/ConditionalOperation.m +++ b/infer/tests/codetoanalyze/objc/frontend/conditional_operation/ConditionalOperation.m @@ -1,6 +1,10 @@ /* - * Copyright (c) 2014 - Facebook. - * All rights reserved. +* Copyright (c) 2014 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ #import diff --git a/infer/tests/codetoanalyze/objc/frontend/exceptions/ExceptionExample.dot b/infer/tests/codetoanalyze/objc/frontend/exceptions/ExceptionExample.dot index 6f4da841f..ee4b95889 100644 --- a/infer/tests/codetoanalyze/objc/frontend/exceptions/ExceptionExample.dot +++ b/infer/tests/codetoanalyze/objc/frontend/exceptions/ExceptionExample.dot @@ -1,44 +1,44 @@ digraph iCFG { -11 [label="11: DeclStmt \n n$9=_fun___objc_alloc_no_fail(sizeof(class NSString ):class NSString *) [line 27]\n *&s:class NSString *=n$9 [line 27]\n REMOVE_TEMPS(n$9); [line 27]\n " shape="box"] +11 [label="11: DeclStmt \n n$9=_fun___objc_alloc_no_fail(sizeof(class NSString ):class NSString *) [line 31]\n *&s:class NSString *=n$9 [line 31]\n REMOVE_TEMPS(n$9); [line 31]\n " shape="box"] 11 -> 8 ; 11 -> 9 ; -10 [label="10: Return Stmt \n NULLIFY(&s,false); [line 29]\n n$6=_fun_NSString_stringWithUTF8String:(\"Something is not right exception\":char *) [line 29]\n n$7=_fun_NSString_stringWithUTF8String:(\"Can't perform this operation because of this or that\":char *) [line 30]\n n$5=_fun_NSException_exceptionWithName:reason:userInfo:(n$6:class NSString *,n$7:class NSString *,0:class NSDictionary *) [line 29]\n *&return:void =n$5 [line 29]\n REMOVE_TEMPS(n$5,n$6,n$7); [line 29]\n APPLY_ABSTRACTION; [line 29]\n " shape="box"] +10 [label="10: Return Stmt \n NULLIFY(&s,false); [line 33]\n n$6=_fun_NSString_stringWithUTF8String:(\"Something is not right exception\":char *) [line 33]\n n$7=_fun_NSString_stringWithUTF8String:(\"Can't perform this operation because of this or that\":char *) [line 34]\n n$5=_fun_NSException_exceptionWithName:reason:userInfo:(n$6:class NSString *,n$7:class NSString *,0:class NSDictionary *) [line 33]\n *&return:void =n$5 [line 33]\n REMOVE_TEMPS(n$5,n$6,n$7); [line 33]\n APPLY_ABSTRACTION; [line 33]\n " shape="box"] 10 -> 6 ; -9 [label="9: Prune (false branch) \n n$4=*&s:class NSString * [line 28]\n PRUNE((n$4 == 0), false); [line 28]\n REMOVE_TEMPS(n$4); [line 28]\n " shape="invhouse"] +9 [label="9: Prune (false branch) \n n$4=*&s:class NSString * [line 32]\n PRUNE((n$4 == 0), false); [line 32]\n REMOVE_TEMPS(n$4); [line 32]\n " shape="invhouse"] 9 -> 7 ; -8 [label="8: Prune (true branch) \n n$4=*&s:class NSString * [line 28]\n PRUNE((n$4 != 0), true); [line 28]\n REMOVE_TEMPS(n$4); [line 28]\n " shape="invhouse"] +8 [label="8: Prune (true branch) \n n$4=*&s:class NSString * [line 32]\n PRUNE((n$4 != 0), true); [line 32]\n REMOVE_TEMPS(n$4); [line 32]\n " shape="invhouse"] 8 -> 10 ; -7 [label="7: + \n NULLIFY(&s,false); [line 28]\n " ] +7 [label="7: + \n NULLIFY(&s,false); [line 32]\n " ] 7 -> 6 ; 6 [label="6: Exit ExceptionExample_test1 \n " color=yellow style=filled] -5 [label="5: Start ExceptionExample_test1\nFormals: self:class ExceptionExample *\nLocals: s:class NSString * \n DECLARE_LOCALS(&return,&s); [line 26]\n NULLIFY(&s,false); [line 26]\n NULLIFY(&self,false); [line 26]\n " color=yellow style=filled] +5 [label="5: Start ExceptionExample_test1\nFormals: self:class ExceptionExample *\nLocals: s:class NSString * \n DECLARE_LOCALS(&return,&s); [line 30]\n NULLIFY(&s,false); [line 30]\n NULLIFY(&self,false); [line 30]\n " color=yellow style=filled] 5 -> 11 ; -4 [label="4: DeclStmt \n n$3=_fun___objc_alloc_no_fail(sizeof(class NSString ):class NSString *) [line 17]\n *&s:class NSString *=n$3 [line 17]\n REMOVE_TEMPS(n$3); [line 17]\n NULLIFY(&s,false); [line 17]\n " shape="box"] +4 [label="4: DeclStmt \n n$3=_fun___objc_alloc_no_fail(sizeof(class NSString ):class NSString *) [line 21]\n *&s:class NSString *=n$3 [line 21]\n REMOVE_TEMPS(n$3); [line 21]\n NULLIFY(&s,false); [line 21]\n " shape="box"] 4 -> 3 ; -3 [label="3: Message Call: description \n n$1=*&self:class ExceptionExample * [line 22]\n n$0=_fun_ExceptionExample_description(n$1:class ExceptionExample *) virtual [line 22]\n REMOVE_TEMPS(n$0,n$1); [line 22]\n NULLIFY(&self,false); [line 22]\n APPLY_ABSTRACTION; [line 22]\n " shape="box"] +3 [label="3: Message Call: description \n n$1=*&self:class ExceptionExample * [line 26]\n n$0=_fun_ExceptionExample_description(n$1:class ExceptionExample *) virtual [line 26]\n REMOVE_TEMPS(n$0,n$1); [line 26]\n NULLIFY(&self,false); [line 26]\n APPLY_ABSTRACTION; [line 26]\n " shape="box"] 3 -> 2 ; 2 [label="2: Exit ExceptionExample_test \n " color=yellow style=filled] -1 [label="1: Start ExceptionExample_test\nFormals: self:class ExceptionExample *\nLocals: s:class NSString * \n DECLARE_LOCALS(&return,&s); [line 15]\n NULLIFY(&s,false); [line 15]\n " color=yellow style=filled] +1 [label="1: Start ExceptionExample_test\nFormals: self:class ExceptionExample *\nLocals: s:class NSString * \n DECLARE_LOCALS(&return,&s); [line 19]\n NULLIFY(&s,false); [line 19]\n " color=yellow style=filled] 1 -> 4 ; diff --git a/infer/tests/codetoanalyze/objc/frontend/exceptions/ExceptionExample.m b/infer/tests/codetoanalyze/objc/frontend/exceptions/ExceptionExample.m index f335aa148..2c75a5394 100644 --- a/infer/tests/codetoanalyze/objc/frontend/exceptions/ExceptionExample.m +++ b/infer/tests/codetoanalyze/objc/frontend/exceptions/ExceptionExample.m @@ -1,6 +1,10 @@ /* - * Copyright (c) 2014 - Facebook. - * All rights reserved. +* Copyright (c) 2014 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ #import diff --git a/infer/tests/codetoanalyze/objc/frontend/fast_enumeration/Fast_enumeration.dot b/infer/tests/codetoanalyze/objc/frontend/fast_enumeration/Fast_enumeration.dot index 4b504e4c6..3370a2130 100644 --- a/infer/tests/codetoanalyze/objc/frontend/fast_enumeration/Fast_enumeration.dot +++ b/infer/tests/codetoanalyze/objc/frontend/fast_enumeration/Fast_enumeration.dot @@ -1,25 +1,25 @@ digraph iCFG { -19 [label="19: DeclStmt \n *&size:int =0 [line 17]\n " shape="box"] +19 [label="19: DeclStmt \n *&size:int =0 [line 26]\n " shape="box"] 19 -> 18 ; -18 [label="18: DeclStmt \n *&item:class NSArray *=0 [line 18]\n NULLIFY(&item,false); [line 18]\n APPLY_ABSTRACTION; [line 18]\n " shape="box"] +18 [label="18: DeclStmt \n *&item:class NSArray *=0 [line 27]\n NULLIFY(&item,false); [line 27]\n APPLY_ABSTRACTION; [line 27]\n " shape="box"] 18 -> 13 ; -17 [label="17: ComppoundAssignStmt \n n$12=*&item:class NSArray * [line 20]\n n$11=_fun_NSArray_count(n$12:class NSArray *) virtual [line 20]\n n$13=*&size:int [line 20]\n *&size:int =(n$13 + n$11) [line 20]\n REMOVE_TEMPS(n$11,n$12,n$13); [line 20]\n NULLIFY(&item,false); [line 20]\n APPLY_ABSTRACTION; [line 20]\n " shape="box"] +17 [label="17: ComppoundAssignStmt \n n$12=*&item:class NSArray * [line 29]\n n$11=_fun_NSArray_count(n$12:class NSArray *) virtual [line 29]\n n$13=*&size:int [line 29]\n *&size:int =(n$13 + n$11) [line 29]\n REMOVE_TEMPS(n$11,n$12,n$13); [line 29]\n NULLIFY(&item,false); [line 29]\n APPLY_ABSTRACTION; [line 29]\n " shape="box"] 17 -> 13 ; -16 [label="16: Prune (false branch) \n PRUNE((n$10 == 0), false); [line 19]\n REMOVE_TEMPS(n$8,n$9,n$10); [line 19]\n " shape="invhouse"] +16 [label="16: Prune (false branch) \n PRUNE((n$10 == 0), false); [line 28]\n REMOVE_TEMPS(n$8,n$9,n$10); [line 28]\n " shape="invhouse"] 16 -> 12 ; -15 [label="15: Prune (true branch) \n PRUNE((n$10 != 0), true); [line 19]\n REMOVE_TEMPS(n$8,n$9,n$10); [line 19]\n " shape="invhouse"] +15 [label="15: Prune (true branch) \n PRUNE((n$10 != 0), true); [line 28]\n REMOVE_TEMPS(n$8,n$9,n$10); [line 28]\n " shape="invhouse"] 15 -> 17 ; -14 [label="14: BinaryOperatorStmt: Assign \n n$9=*&items:class NSArray * [line 19]\n n$8=_fun_NSArray_nextObject(n$9:class NSArray *) virtual [line 19]\n *&item:class NSArray *=n$8 [line 19]\n n$10=*&item:class NSArray * [line 19]\n " shape="box"] +14 [label="14: BinaryOperatorStmt: Assign \n n$9=*&items:class NSArray * [line 28]\n n$8=_fun_NSArray_nextObject(n$9:class NSArray *) virtual [line 28]\n *&item:class NSArray *=n$8 [line 28]\n n$10=*&item:class NSArray * [line 28]\n " shape="box"] 14 -> 15 ; @@ -28,34 +28,34 @@ digraph iCFG { 13 -> 14 ; -12 [label="12: Return Stmt \n NULLIFY(&item,false); [line 22]\n NULLIFY(&items,false); [line 22]\n n$7=*&size:int [line 22]\n *&return:int =n$7 [line 22]\n REMOVE_TEMPS(n$7); [line 22]\n NULLIFY(&size,false); [line 22]\n APPLY_ABSTRACTION; [line 22]\n " shape="box"] +12 [label="12: Return Stmt \n NULLIFY(&item,false); [line 31]\n NULLIFY(&items,false); [line 31]\n n$7=*&size:int [line 31]\n *&return:int =n$7 [line 31]\n REMOVE_TEMPS(n$7); [line 31]\n NULLIFY(&size,false); [line 31]\n APPLY_ABSTRACTION; [line 31]\n " shape="box"] 12 -> 11 ; 11 [label="11: Exit A_while_loop: \n " color=yellow style=filled] -10 [label="10: Start A_while_loop:\nFormals: self:class A * items:class NSArray *\nLocals: size:int item:class NSArray * \n DECLARE_LOCALS(&return,&size,&item); [line 16]\n NULLIFY(&item,false); [line 16]\n NULLIFY(&self,false); [line 16]\n NULLIFY(&size,false); [line 16]\n " color=yellow style=filled] +10 [label="10: Start A_while_loop:\nFormals: self:class A * items:class NSArray *\nLocals: size:int item:class NSArray * \n DECLARE_LOCALS(&return,&size,&item); [line 25]\n NULLIFY(&item,false); [line 25]\n NULLIFY(&self,false); [line 25]\n NULLIFY(&size,false); [line 25]\n " color=yellow style=filled] 10 -> 19 ; -9 [label="9: DeclStmt \n *&size:int =0 [line 9]\n APPLY_ABSTRACTION; [line 9]\n " shape="box"] +9 [label="9: DeclStmt \n *&size:int =0 [line 18]\n APPLY_ABSTRACTION; [line 18]\n " shape="box"] 9 -> 4 ; -8 [label="8: ComppoundAssignStmt \n n$5=*&item:class NSArray * [line 11]\n n$4=_fun_NSArray_count(n$5:class NSArray *) virtual [line 11]\n n$6=*&size:int [line 11]\n *&size:int =(n$6 + n$4) [line 11]\n REMOVE_TEMPS(n$4,n$5,n$6); [line 11]\n NULLIFY(&item,false); [line 11]\n APPLY_ABSTRACTION; [line 11]\n " shape="box"] +8 [label="8: ComppoundAssignStmt \n n$5=*&item:class NSArray * [line 20]\n n$4=_fun_NSArray_count(n$5:class NSArray *) virtual [line 20]\n n$6=*&size:int [line 20]\n *&size:int =(n$6 + n$4) [line 20]\n REMOVE_TEMPS(n$4,n$5,n$6); [line 20]\n NULLIFY(&item,false); [line 20]\n APPLY_ABSTRACTION; [line 20]\n " shape="box"] 8 -> 4 ; -7 [label="7: Prune (false branch) \n PRUNE((n$3 == 0), false); [line 10]\n REMOVE_TEMPS(n$1,n$2,n$3); [line 10]\n " shape="invhouse"] +7 [label="7: Prune (false branch) \n PRUNE((n$3 == 0), false); [line 19]\n REMOVE_TEMPS(n$1,n$2,n$3); [line 19]\n " shape="invhouse"] 7 -> 3 ; -6 [label="6: Prune (true branch) \n PRUNE((n$3 != 0), true); [line 10]\n REMOVE_TEMPS(n$1,n$2,n$3); [line 10]\n " shape="invhouse"] +6 [label="6: Prune (true branch) \n PRUNE((n$3 != 0), true); [line 19]\n REMOVE_TEMPS(n$1,n$2,n$3); [line 19]\n " shape="invhouse"] 6 -> 8 ; -5 [label="5: BinaryOperatorStmt: Assign \n n$2=*&items:class NSArray * [line 10]\n n$1=_fun_NSArray_nextObject(n$2:class NSArray *) virtual [line 10]\n *&item:class NSArray *=n$1 [line 10]\n n$3=*&item:class NSArray * [line 10]\n " shape="box"] +5 [label="5: BinaryOperatorStmt: Assign \n n$2=*&items:class NSArray * [line 19]\n n$1=_fun_NSArray_nextObject(n$2:class NSArray *) virtual [line 19]\n *&item:class NSArray *=n$1 [line 19]\n n$3=*&item:class NSArray * [line 19]\n " shape="box"] 5 -> 6 ; @@ -64,14 +64,14 @@ digraph iCFG { 4 -> 5 ; -3 [label="3: Return Stmt \n NULLIFY(&item,false); [line 13]\n NULLIFY(&items,false); [line 13]\n n$0=*&size:int [line 13]\n *&return:int =n$0 [line 13]\n REMOVE_TEMPS(n$0); [line 13]\n NULLIFY(&size,false); [line 13]\n APPLY_ABSTRACTION; [line 13]\n " shape="box"] +3 [label="3: Return Stmt \n NULLIFY(&item,false); [line 22]\n NULLIFY(&items,false); [line 22]\n n$0=*&size:int [line 22]\n *&return:int =n$0 [line 22]\n REMOVE_TEMPS(n$0); [line 22]\n NULLIFY(&size,false); [line 22]\n APPLY_ABSTRACTION; [line 22]\n " shape="box"] 3 -> 2 ; 2 [label="2: Exit A_fast_loop: \n " color=yellow style=filled] -1 [label="1: Start A_fast_loop:\nFormals: self:class A * items:class NSArray *\nLocals: size:int item:class NSArray * \n DECLARE_LOCALS(&return,&size,&item); [line 8]\n NULLIFY(&item,false); [line 8]\n NULLIFY(&self,false); [line 8]\n NULLIFY(&size,false); [line 8]\n " color=yellow style=filled] +1 [label="1: Start A_fast_loop:\nFormals: self:class A * items:class NSArray *\nLocals: size:int item:class NSArray * \n DECLARE_LOCALS(&return,&size,&item); [line 17]\n NULLIFY(&item,false); [line 17]\n NULLIFY(&self,false); [line 17]\n NULLIFY(&size,false); [line 17]\n " color=yellow style=filled] 1 -> 9 ; diff --git a/infer/tests/codetoanalyze/objc/frontend/fast_enumeration/Fast_enumeration.m b/infer/tests/codetoanalyze/objc/frontend/fast_enumeration/Fast_enumeration.m index ad5ed4e66..d6f2a612f 100644 --- a/infer/tests/codetoanalyze/objc/frontend/fast_enumeration/Fast_enumeration.m +++ b/infer/tests/codetoanalyze/objc/frontend/fast_enumeration/Fast_enumeration.m @@ -1,3 +1,12 @@ +/* +* Copyright (c) 2015 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. +*/ + #import @interface A : NSObject diff --git a/infer/tests/codetoanalyze/objc/frontend/predefined_expr/PredefinedExprExample.dot b/infer/tests/codetoanalyze/objc/frontend/predefined_expr/PredefinedExprExample.dot index 75bc91a83..38d9c0290 100644 --- a/infer/tests/codetoanalyze/objc/frontend/predefined_expr/PredefinedExprExample.dot +++ b/infer/tests/codetoanalyze/objc/frontend/predefined_expr/PredefinedExprExample.dot @@ -1,34 +1,34 @@ digraph iCFG { -9 [label="9: Call _fun_NSLog \n n$2=_fun_NSString_stringWithUTF8String:(\"%s\":char *) [line 23]\n _fun_NSLog(n$2:struct objc_object *,\"\":char *) [line 23]\n REMOVE_TEMPS(n$2); [line 23]\n APPLY_ABSTRACTION; [line 23]\n " shape="box"] +9 [label="9: Call _fun_NSLog \n n$2=_fun_NSString_stringWithUTF8String:(\"%s\":char *) [line 27]\n _fun_NSLog(n$2:struct objc_object *,\"\":char *) [line 27]\n REMOVE_TEMPS(n$2); [line 27]\n APPLY_ABSTRACTION; [line 27]\n " shape="box"] 9 -> 8 ; 8 [label="8: Exit A_testFunct \n " color=yellow style=filled] -7 [label="7: Start A_testFunct\nFormals: self:class A *\nLocals: \n DECLARE_LOCALS(&return); [line 22]\n NULLIFY(&self,false); [line 22]\n " color=yellow style=filled] +7 [label="7: Start A_testFunct\nFormals: self:class A *\nLocals: \n DECLARE_LOCALS(&return); [line 26]\n NULLIFY(&self,false); [line 26]\n " color=yellow style=filled] 7 -> 9 ; -6 [label="6: Call _fun_NSLog \n n$1=_fun_NSString_stringWithUTF8String:(\"%s\":char *) [line 19]\n _fun_NSLog(n$1:struct objc_object *,\"\":char *) [line 19]\n REMOVE_TEMPS(n$1); [line 19]\n APPLY_ABSTRACTION; [line 19]\n " shape="box"] +6 [label="6: Call _fun_NSLog \n n$1=_fun_NSString_stringWithUTF8String:(\"%s\":char *) [line 23]\n _fun_NSLog(n$1:struct objc_object *,\"\":char *) [line 23]\n REMOVE_TEMPS(n$1); [line 23]\n APPLY_ABSTRACTION; [line 23]\n " shape="box"] 6 -> 5 ; 5 [label="5: Exit A_testFunction \n " color=yellow style=filled] -4 [label="4: Start A_testFunction\nFormals: self:class A *\nLocals: \n DECLARE_LOCALS(&return); [line 18]\n NULLIFY(&self,false); [line 18]\n " color=yellow style=filled] +4 [label="4: Start A_testFunction\nFormals: self:class A *\nLocals: \n DECLARE_LOCALS(&return); [line 22]\n NULLIFY(&self,false); [line 22]\n " color=yellow style=filled] 4 -> 6 ; -3 [label="3: Call _fun_NSLog \n n$0=_fun_NSString_stringWithUTF8String:(\"%s\":char *) [line 15]\n _fun_NSLog(n$0:struct objc_object *,\"\":char *) [line 15]\n REMOVE_TEMPS(n$0); [line 15]\n APPLY_ABSTRACTION; [line 15]\n " shape="box"] +3 [label="3: Call _fun_NSLog \n n$0=_fun_NSString_stringWithUTF8String:(\"%s\":char *) [line 19]\n _fun_NSLog(n$0:struct objc_object *,\"\":char *) [line 19]\n REMOVE_TEMPS(n$0); [line 19]\n APPLY_ABSTRACTION; [line 19]\n " shape="box"] 3 -> 2 ; 2 [label="2: Exit A_testPrettyFunction \n " color=yellow style=filled] -1 [label="1: Start A_testPrettyFunction\nFormals: self:class A *\nLocals: \n DECLARE_LOCALS(&return); [line 14]\n NULLIFY(&self,false); [line 14]\n " color=yellow style=filled] +1 [label="1: Start A_testPrettyFunction\nFormals: self:class A *\nLocals: \n DECLARE_LOCALS(&return); [line 18]\n NULLIFY(&self,false); [line 18]\n " color=yellow style=filled] 1 -> 3 ; diff --git a/infer/tests/codetoanalyze/objc/frontend/predefined_expr/PredefinedExprExample.m b/infer/tests/codetoanalyze/objc/frontend/predefined_expr/PredefinedExprExample.m index 4cb4ef7ca..b8652aa79 100644 --- a/infer/tests/codetoanalyze/objc/frontend/predefined_expr/PredefinedExprExample.m +++ b/infer/tests/codetoanalyze/objc/frontend/predefined_expr/PredefinedExprExample.m @@ -1,6 +1,10 @@ /* - * Copyright (c) 2014 - Facebook. - * All rights reserved. +* Copyright (c) 2014 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ #import diff --git a/infer/tests/codetoanalyze/objc/frontend/property/Car.h b/infer/tests/codetoanalyze/objc/frontend/property/Car.h index 1ff61ffe1..58f15dcc0 100644 --- a/infer/tests/codetoanalyze/objc/frontend/property/Car.h +++ b/infer/tests/codetoanalyze/objc/frontend/property/Car.h @@ -1,6 +1,10 @@ /* - * Copyright (c) 2014 - Facebook. - * All rights reserved. +* Copyright (c) 2014 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ #import diff --git a/infer/tests/codetoanalyze/objc/frontend/property/Car.m b/infer/tests/codetoanalyze/objc/frontend/property/Car.m index 280d78d4e..12763deda 100644 --- a/infer/tests/codetoanalyze/objc/frontend/property/Car.m +++ b/infer/tests/codetoanalyze/objc/frontend/property/Car.m @@ -1,6 +1,10 @@ /* - * Copyright (c) 2014 - Facebook. - * All rights reserved. +* Copyright (c) 2014 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ #import "Car.h" diff --git a/infer/tests/codetoanalyze/objc/frontend/property/PropertyAttributes.dot b/infer/tests/codetoanalyze/objc/frontend/property/PropertyAttributes.dot index 39e3b3a7a..c0d075ebd 100644 --- a/infer/tests/codetoanalyze/objc/frontend/property/PropertyAttributes.dot +++ b/infer/tests/codetoanalyze/objc/frontend/property/PropertyAttributes.dot @@ -1,28 +1,28 @@ digraph iCFG { -36 [label="36: DeclStmt \n n$37=_fun___objc_alloc_no_fail(sizeof(class A ):class A *) [line 35]\n n$35=_fun_A_init(n$37:class A *) virtual [line 35]\n *&a:class A *=n$35 [line 35]\n REMOVE_TEMPS(n$35,n$37); [line 35]\n " shape="box"] +36 [label="36: DeclStmt \n n$37=_fun___objc_alloc_no_fail(sizeof(class A ):class A *) [line 39]\n n$35=_fun_A_init(n$37:class A *) virtual [line 39]\n *&a:class A *=n$35 [line 39]\n REMOVE_TEMPS(n$35,n$37); [line 39]\n " shape="box"] 36 -> 35 ; -35 [label="35: Message Call: setLast_name: \n n$33=*&a:class A * [line 36]\n n$34=*&a2:class A * [line 36]\n _fun_A_setLast_name:(n$33:class A *,n$34:class A *) virtual [line 36]\n REMOVE_TEMPS(n$33,n$34); [line 36]\n NULLIFY(&a2,false); [line 36]\n " shape="box"] +35 [label="35: Message Call: setLast_name: \n n$33=*&a:class A * [line 40]\n n$34=*&a2:class A * [line 40]\n _fun_A_setLast_name:(n$33:class A *,n$34:class A *) virtual [line 40]\n REMOVE_TEMPS(n$33,n$34); [line 40]\n NULLIFY(&a2,false); [line 40]\n " shape="box"] 35 -> 34 ; -34 [label="34: Message Call: release \n n$32=*&a:class A * [line 37]\n _fun___objc_release(n$32:class A *) [line 37]\n REMOVE_TEMPS(n$32); [line 37]\n NULLIFY(&a,false); [line 37]\n " shape="box"] +34 [label="34: Message Call: release \n n$32=*&a:class A * [line 41]\n _fun___objc_release(n$32:class A *) [line 41]\n REMOVE_TEMPS(n$32); [line 41]\n NULLIFY(&a,false); [line 41]\n " shape="box"] 34 -> 33 ; -33 [label="33: Return Stmt \n *&return:int =0 [line 38]\n APPLY_ABSTRACTION; [line 38]\n " shape="box"] +33 [label="33: Return Stmt \n *&return:int =0 [line 42]\n APPLY_ABSTRACTION; [line 42]\n " shape="box"] 33 -> 32 ; 32 [label="32: Exit test \n " color=yellow style=filled] -31 [label="31: Start test\nFormals: a2:class A *\nLocals: a:class A * \n DECLARE_LOCALS(&return,&a); [line 34]\n NULLIFY(&a,false); [line 34]\n " color=yellow style=filled] +31 [label="31: Start test\nFormals: a2:class A *\nLocals: a:class A * \n DECLARE_LOCALS(&return,&a); [line 38]\n NULLIFY(&a,false); [line 38]\n " color=yellow style=filled] 31 -> 36 ; -30 [label="30: BinaryOperatorStmt: Assign \n n$30=*&self:class A * [line 14]\n n$31=*&last_name:class A * [line 14]\n *n$30._last_name:class A *=n$31 [line -1]\n REMOVE_TEMPS(n$30,n$31); [line -1]\n NULLIFY(&last_name,false); [line -1]\n NULLIFY(&self,false); [line -1]\n APPLY_ABSTRACTION; [line -1]\n " shape="box"] +30 [label="30: BinaryOperatorStmt: Assign \n n$30=*&self:class A * [line 18]\n n$31=*&last_name:class A * [line 18]\n *n$30._last_name:class A *=n$31 [line -1]\n REMOVE_TEMPS(n$30,n$31); [line -1]\n NULLIFY(&last_name,false); [line -1]\n NULLIFY(&self,false); [line -1]\n APPLY_ABSTRACTION; [line -1]\n " shape="box"] 30 -> 29 ; @@ -48,11 +48,11 @@ digraph iCFG { 24 -> 23 ; -23 [label="23: Message Call: release \n n$24=*&self:class A * [line 12]\n n$25=*n$24._name:class A * [line -1]\n n$23=_fun___objc_release(n$25:class A *) [line -1]\n REMOVE_TEMPS(n$23,n$24,n$25); [line -1]\n " shape="box"] +23 [label="23: Message Call: release \n n$24=*&self:class A * [line 16]\n n$25=*n$24._name:class A * [line -1]\n n$23=_fun___objc_release(n$25:class A *) [line -1]\n REMOVE_TEMPS(n$23,n$24,n$25); [line -1]\n " shape="box"] 23 -> 22 ; -22 [label="22: BinaryOperatorStmt: Assign \n n$21=*&self:class A * [line 12]\n n$22=*&name:class A * [line 12]\n *n$21._name:class A *=n$22 [line -1]\n REMOVE_TEMPS(n$21,n$22); [line -1]\n NULLIFY(&name,false); [line -1]\n NULLIFY(&self,false); [line -1]\n APPLY_ABSTRACTION; [line -1]\n " shape="box"] +22 [label="22: BinaryOperatorStmt: Assign \n n$21=*&self:class A * [line 16]\n n$22=*&name:class A * [line 16]\n *n$21._name:class A *=n$22 [line -1]\n REMOVE_TEMPS(n$21,n$22); [line -1]\n NULLIFY(&name,false); [line -1]\n NULLIFY(&self,false); [line -1]\n APPLY_ABSTRACTION; [line -1]\n " shape="box"] 22 -> 21 ; @@ -74,7 +74,7 @@ digraph iCFG { 17 -> 19 ; -16 [label="16: BinaryOperatorStmt: Assign \n n$16=*&self:class A * [line 10]\n n$18=*&child:class A * [line -1]\n n$17=_fun_A_copy(n$18:class A *) virtual [line -1]\n *n$16._child:class A *=n$17 [line -1]\n REMOVE_TEMPS(n$16,n$17,n$18); [line -1]\n NULLIFY(&child,false); [line -1]\n NULLIFY(&self,false); [line -1]\n APPLY_ABSTRACTION; [line -1]\n " shape="box"] +16 [label="16: BinaryOperatorStmt: Assign \n n$16=*&self:class A * [line 14]\n n$18=*&child:class A * [line -1]\n n$17=_fun_A_copy(n$18:class A *) virtual [line -1]\n *n$16._child:class A *=n$17 [line -1]\n REMOVE_TEMPS(n$16,n$17,n$18); [line -1]\n NULLIFY(&child,false); [line -1]\n NULLIFY(&self,false); [line -1]\n APPLY_ABSTRACTION; [line -1]\n " shape="box"] 16 -> 15 ; @@ -96,28 +96,28 @@ digraph iCFG { 11 -> 13 ; -10 [label="10: DeclStmt \n n$13=_fun___objc_alloc_no_fail(sizeof(class A ):class A *) [line 23]\n n$11=_fun_A_init(n$13:class A *) virtual [line 23]\n *&other:class A *=n$11 [line 23]\n REMOVE_TEMPS(n$11,n$13); [line 23]\n " shape="box"] +10 [label="10: DeclStmt \n n$13=_fun___objc_alloc_no_fail(sizeof(class A ):class A *) [line 27]\n n$11=_fun_A_init(n$13:class A *) virtual [line 27]\n *&other:class A *=n$11 [line 27]\n REMOVE_TEMPS(n$11,n$13); [line 27]\n " shape="box"] 10 -> 5 ; 10 -> 6 ; -9 [label="9: BinaryOperatorStmt: Assign \n n$8=*&other:class A * [line 25]\n n$9=*&self:class A * [line 25]\n n$10=*n$9._name:class A * [line 25]\n *n$8._name:class A *=n$10 [line 25]\n REMOVE_TEMPS(n$8,n$9,n$10); [line 25]\n " shape="box"] +9 [label="9: BinaryOperatorStmt: Assign \n n$8=*&other:class A * [line 29]\n n$9=*&self:class A * [line 29]\n n$10=*n$9._name:class A * [line 29]\n *n$8._name:class A *=n$10 [line 29]\n REMOVE_TEMPS(n$8,n$9,n$10); [line 29]\n " shape="box"] 9 -> 8 ; -8 [label="8: BinaryOperatorStmt: Assign \n n$5=*&other:class A * [line 26]\n n$6=*&self:class A * [line 26]\n n$7=*n$6._last_name:class A * [line 26]\n *n$5._last_name:class A *=n$7 [line 26]\n REMOVE_TEMPS(n$5,n$6,n$7); [line 26]\n " shape="box"] +8 [label="8: BinaryOperatorStmt: Assign \n n$5=*&other:class A * [line 30]\n n$6=*&self:class A * [line 30]\n n$7=*n$6._last_name:class A * [line 30]\n *n$5._last_name:class A *=n$7 [line 30]\n REMOVE_TEMPS(n$5,n$6,n$7); [line 30]\n " shape="box"] 8 -> 7 ; -7 [label="7: BinaryOperatorStmt: Assign \n n$2=*&other:class A * [line 27]\n n$3=*&self:class A * [line 27]\n n$4=*n$3._child:class A * [line 27]\n *n$2._child:class A *=n$4 [line 27]\n REMOVE_TEMPS(n$2,n$3,n$4); [line 27]\n NULLIFY(&self,false); [line 27]\n APPLY_ABSTRACTION; [line 27]\n " shape="box"] +7 [label="7: BinaryOperatorStmt: Assign \n n$2=*&other:class A * [line 31]\n n$3=*&self:class A * [line 31]\n n$4=*n$3._child:class A * [line 31]\n *n$2._child:class A *=n$4 [line 31]\n REMOVE_TEMPS(n$2,n$3,n$4); [line 31]\n NULLIFY(&self,false); [line 31]\n APPLY_ABSTRACTION; [line 31]\n " shape="box"] 7 -> 4 ; -6 [label="6: Prune (false branch) \n n$1=*&other:class A * [line 24]\n PRUNE((n$1 == 0), false); [line 24]\n REMOVE_TEMPS(n$1); [line 24]\n APPLY_ABSTRACTION; [line 24]\n " shape="invhouse"] +6 [label="6: Prune (false branch) \n n$1=*&other:class A * [line 28]\n PRUNE((n$1 == 0), false); [line 28]\n REMOVE_TEMPS(n$1); [line 28]\n APPLY_ABSTRACTION; [line 28]\n " shape="invhouse"] 6 -> 4 ; -5 [label="5: Prune (true branch) \n n$1=*&other:class A * [line 24]\n PRUNE((n$1 != 0), true); [line 24]\n REMOVE_TEMPS(n$1); [line 24]\n " shape="invhouse"] +5 [label="5: Prune (true branch) \n n$1=*&other:class A * [line 28]\n PRUNE((n$1 != 0), true); [line 28]\n REMOVE_TEMPS(n$1); [line 28]\n " shape="invhouse"] 5 -> 9 ; @@ -125,14 +125,14 @@ digraph iCFG { 4 -> 3 ; -3 [label="3: Return Stmt \n NULLIFY(&self,false); [line 29]\n n$0=*&other:class A * [line 29]\n *&return:class A *=n$0 [line 29]\n REMOVE_TEMPS(n$0); [line 29]\n NULLIFY(&other,false); [line 29]\n APPLY_ABSTRACTION; [line 29]\n " shape="box"] +3 [label="3: Return Stmt \n NULLIFY(&self,false); [line 33]\n n$0=*&other:class A * [line 33]\n *&return:class A *=n$0 [line 33]\n REMOVE_TEMPS(n$0); [line 33]\n NULLIFY(&other,false); [line 33]\n APPLY_ABSTRACTION; [line 33]\n " shape="box"] 3 -> 2 ; 2 [label="2: Exit A_copy \n " color=yellow style=filled] -1 [label="1: Start A_copy\nFormals: self:class A *\nLocals: other:class A * \n DECLARE_LOCALS(&return,&other); [line 22]\n NULLIFY(&other,false); [line 22]\n " color=yellow style=filled] +1 [label="1: Start A_copy\nFormals: self:class A *\nLocals: other:class A * \n DECLARE_LOCALS(&return,&other); [line 26]\n NULLIFY(&other,false); [line 26]\n " color=yellow style=filled] 1 -> 10 ; diff --git a/infer/tests/codetoanalyze/objc/frontend/property/PropertyAttributes.m b/infer/tests/codetoanalyze/objc/frontend/property/PropertyAttributes.m index 390f3b1f8..586f5404a 100644 --- a/infer/tests/codetoanalyze/objc/frontend/property/PropertyAttributes.m +++ b/infer/tests/codetoanalyze/objc/frontend/property/PropertyAttributes.m @@ -1,6 +1,10 @@ /* - * Copyright (c) 2014 - Facebook. - * All rights reserved. +* Copyright (c) 2014 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ #import diff --git a/infer/tests/codetoanalyze/objc/frontend/property/PropertyCustomAccessor.dot b/infer/tests/codetoanalyze/objc/frontend/property/PropertyCustomAccessor.dot index 37b97b8ab..ea886c7b1 100644 --- a/infer/tests/codetoanalyze/objc/frontend/property/PropertyCustomAccessor.dot +++ b/infer/tests/codetoanalyze/objc/frontend/property/PropertyCustomAccessor.dot @@ -1,5 +1,5 @@ digraph iCFG { -6 [label="6: BinaryOperatorStmt: Assign \n n$2=*&self:class ASDisplayNode * [line 10]\n n$3=*&opaque:signed char [line 10]\n *n$2._opaque:signed char =n$3 [line -1]\n REMOVE_TEMPS(n$2,n$3); [line -1]\n NULLIFY(&opaque,false); [line -1]\n NULLIFY(&self,false); [line -1]\n APPLY_ABSTRACTION; [line -1]\n " shape="box"] +6 [label="6: BinaryOperatorStmt: Assign \n n$2=*&self:class ASDisplayNode * [line 14]\n n$3=*&opaque:signed char [line 14]\n *n$2._opaque:signed char =n$3 [line -1]\n REMOVE_TEMPS(n$2,n$3); [line -1]\n NULLIFY(&opaque,false); [line -1]\n NULLIFY(&self,false); [line -1]\n APPLY_ABSTRACTION; [line -1]\n " shape="box"] 6 -> 5 ; diff --git a/infer/tests/codetoanalyze/objc/frontend/property/PropertyCustomAccessor.m b/infer/tests/codetoanalyze/objc/frontend/property/PropertyCustomAccessor.m index d1dca3a4d..295710f4a 100644 --- a/infer/tests/codetoanalyze/objc/frontend/property/PropertyCustomAccessor.m +++ b/infer/tests/codetoanalyze/objc/frontend/property/PropertyCustomAccessor.m @@ -1,6 +1,10 @@ /* - * Copyright (c) 2014 - Facebook. - * All rights reserved. +* Copyright (c) 2014 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ #import diff --git a/infer/tests/codetoanalyze/objc/frontend/property/PropertyImplSetter.dot b/infer/tests/codetoanalyze/objc/frontend/property/PropertyImplSetter.dot index a69ed546d..4fdcd3fbe 100644 --- a/infer/tests/codetoanalyze/objc/frontend/property/PropertyImplSetter.dot +++ b/infer/tests/codetoanalyze/objc/frontend/property/PropertyImplSetter.dot @@ -10,14 +10,14 @@ digraph iCFG { 4 -> 6 ; -3 [label="3: BinaryOperatorStmt: Assign \n n$0=*&self:class PropertyImplSetter * [line 12]\n *n$0._maximumFileSize:int =0 [line 12]\n REMOVE_TEMPS(n$0); [line 12]\n NULLIFY(&self,false); [line 12]\n APPLY_ABSTRACTION; [line 12]\n " shape="box"] +3 [label="3: BinaryOperatorStmt: Assign \n n$0=*&self:class PropertyImplSetter * [line 16]\n *n$0._maximumFileSize:int =0 [line 16]\n REMOVE_TEMPS(n$0); [line 16]\n NULLIFY(&self,false); [line 16]\n APPLY_ABSTRACTION; [line 16]\n " shape="box"] 3 -> 2 ; 2 [label="2: Exit PropertyImplSetter_setMaximumFileSize: \n " color=yellow style=filled] -1 [label="1: Start PropertyImplSetter_setMaximumFileSize:\nFormals: self:class PropertyImplSetter * newMaximumFileSize:int \nLocals: \n DECLARE_LOCALS(&return); [line 10]\n NULLIFY(&newMaximumFileSize,false); [line 10]\n " color=yellow style=filled] +1 [label="1: Start PropertyImplSetter_setMaximumFileSize:\nFormals: self:class PropertyImplSetter * newMaximumFileSize:int \nLocals: \n DECLARE_LOCALS(&return); [line 14]\n NULLIFY(&newMaximumFileSize,false); [line 14]\n " color=yellow style=filled] 1 -> 3 ; diff --git a/infer/tests/codetoanalyze/objc/frontend/property/PropertyImplSetter.h b/infer/tests/codetoanalyze/objc/frontend/property/PropertyImplSetter.h index 83d67b802..c889e09b0 100644 --- a/infer/tests/codetoanalyze/objc/frontend/property/PropertyImplSetter.h +++ b/infer/tests/codetoanalyze/objc/frontend/property/PropertyImplSetter.h @@ -1,6 +1,10 @@ /* - * Copyright (c) 2014 - Facebook. - * All rights reserved. +* Copyright (c) 2014 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ #import diff --git a/infer/tests/codetoanalyze/objc/frontend/property/PropertyImplSetter.m b/infer/tests/codetoanalyze/objc/frontend/property/PropertyImplSetter.m index c6ba77a6f..9b64dc377 100644 --- a/infer/tests/codetoanalyze/objc/frontend/property/PropertyImplSetter.m +++ b/infer/tests/codetoanalyze/objc/frontend/property/PropertyImplSetter.m @@ -1,6 +1,10 @@ /* - * Copyright (c) 2014 - Facebook. - * All rights reserved. +* Copyright (c) 2014 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ #import "PropertyImplSetter.h" diff --git a/infer/tests/codetoanalyze/objc/frontend/property/Property_getter.dot b/infer/tests/codetoanalyze/objc/frontend/property/Property_getter.dot index 5a18d0c20..9d7f9f0ad 100644 --- a/infer/tests/codetoanalyze/objc/frontend/property/Property_getter.dot +++ b/infer/tests/codetoanalyze/objc/frontend/property/Property_getter.dot @@ -1,5 +1,5 @@ digraph iCFG { -9 [label="9: BinaryOperatorStmt: Assign \n n$4=*&self:class A * [line 9]\n n$5=*&x:int [line 9]\n *n$4._x:int =n$5 [line -1]\n REMOVE_TEMPS(n$4,n$5); [line -1]\n NULLIFY(&self,false); [line -1]\n NULLIFY(&x,false); [line -1]\n APPLY_ABSTRACTION; [line -1]\n " shape="box"] +9 [label="9: BinaryOperatorStmt: Assign \n n$4=*&self:class A * [line 13]\n n$5=*&x:int [line 13]\n *n$4._x:int =n$5 [line -1]\n REMOVE_TEMPS(n$4,n$5); [line -1]\n NULLIFY(&self,false); [line -1]\n NULLIFY(&x,false); [line -1]\n APPLY_ABSTRACTION; [line -1]\n " shape="box"] 9 -> 8 ; @@ -21,14 +21,14 @@ digraph iCFG { 4 -> 6 ; -3 [label="3: Return Stmt \n n$1=*&target:class A * [line 15]\n n$0=_fun_A_x(n$1:class A *) virtual [line 15]\n *&return:int =n$0 [line 15]\n REMOVE_TEMPS(n$0,n$1); [line 15]\n NULLIFY(&target,false); [line 15]\n APPLY_ABSTRACTION; [line 15]\n " shape="box"] +3 [label="3: Return Stmt \n n$1=*&target:class A * [line 19]\n n$0=_fun_A_x(n$1:class A *) virtual [line 19]\n *&return:int =n$0 [line 19]\n REMOVE_TEMPS(n$0,n$1); [line 19]\n NULLIFY(&target,false); [line 19]\n APPLY_ABSTRACTION; [line 19]\n " shape="box"] 3 -> 2 ; 2 [label="2: Exit A_addTarget: \n " color=yellow style=filled] -1 [label="1: Start A_addTarget:\nFormals: self:class A * target:class A *\nLocals: \n DECLARE_LOCALS(&return); [line 14]\n NULLIFY(&self,false); [line 14]\n " color=yellow style=filled] +1 [label="1: Start A_addTarget:\nFormals: self:class A * target:class A *\nLocals: \n DECLARE_LOCALS(&return); [line 18]\n NULLIFY(&self,false); [line 18]\n " color=yellow style=filled] 1 -> 3 ; diff --git a/infer/tests/codetoanalyze/objc/frontend/property/Property_getter.m b/infer/tests/codetoanalyze/objc/frontend/property/Property_getter.m index d194e57b5..e92d8eb5d 100644 --- a/infer/tests/codetoanalyze/objc/frontend/property/Property_getter.m +++ b/infer/tests/codetoanalyze/objc/frontend/property/Property_getter.m @@ -1,6 +1,10 @@ /* - * Copyright (c) 2014 - Facebook. - * All rights reserved. +* Copyright (c) 2014 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ #import diff --git a/infer/tests/codetoanalyze/objc/frontend/property/aclass.dot b/infer/tests/codetoanalyze/objc/frontend/property/aclass.dot index 2e6dbd5db..99866a93b 100644 --- a/infer/tests/codetoanalyze/objc/frontend/property/aclass.dot +++ b/infer/tests/codetoanalyze/objc/frontend/property/aclass.dot @@ -3,11 +3,11 @@ digraph iCFG { 8 -> 7 ; -7 [label="7: Message Call: release \n n$5=*&self:class AClass * [line 9]\n n$6=*n$5.aDynValue:class NSObject * [line -1]\n n$4=_fun___objc_release(n$6:class NSObject *) [line -1]\n REMOVE_TEMPS(n$4,n$5,n$6); [line -1]\n " shape="box"] +7 [label="7: Message Call: release \n n$5=*&self:class AClass * [line 13]\n n$6=*n$5.aDynValue:class NSObject * [line -1]\n n$4=_fun___objc_release(n$6:class NSObject *) [line -1]\n REMOVE_TEMPS(n$4,n$5,n$6); [line -1]\n " shape="box"] 7 -> 6 ; -6 [label="6: BinaryOperatorStmt: Assign \n n$2=*&self:class AClass * [line 9]\n n$3=*&aDynValue:class NSObject * [line 9]\n *n$2.aDynValue:class NSObject *=n$3 [line -1]\n REMOVE_TEMPS(n$2,n$3); [line -1]\n NULLIFY(&aDynValue,false); [line -1]\n NULLIFY(&self,false); [line -1]\n APPLY_ABSTRACTION; [line -1]\n " shape="box"] +6 [label="6: BinaryOperatorStmt: Assign \n n$2=*&self:class AClass * [line 13]\n n$3=*&aDynValue:class NSObject * [line 13]\n *n$2.aDynValue:class NSObject *=n$3 [line -1]\n REMOVE_TEMPS(n$2,n$3); [line -1]\n NULLIFY(&aDynValue,false); [line -1]\n NULLIFY(&self,false); [line -1]\n APPLY_ABSTRACTION; [line -1]\n " shape="box"] 6 -> 5 ; diff --git a/infer/tests/codetoanalyze/objc/frontend/property/aclass.m b/infer/tests/codetoanalyze/objc/frontend/property/aclass.m index 9d97c040a..e527bdbb6 100644 --- a/infer/tests/codetoanalyze/objc/frontend/property/aclass.m +++ b/infer/tests/codetoanalyze/objc/frontend/property/aclass.m @@ -1,6 +1,10 @@ /* - * Copyright (c) 2014 - Facebook. - * All rights reserved. +* Copyright (c) 2014 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ #import diff --git a/infer/tests/codetoanalyze/objc/frontend/property/main_car.dot b/infer/tests/codetoanalyze/objc/frontend/property/main_car.dot index aea29b0d8..08bc8d5c3 100644 --- a/infer/tests/codetoanalyze/objc/frontend/property/main_car.dot +++ b/infer/tests/codetoanalyze/objc/frontend/property/main_car.dot @@ -1,24 +1,24 @@ digraph iCFG { -6 [label="6: DeclStmt \n n$6=_fun___objc_alloc_no_fail(sizeof(class Car ):class Car *) [line 9]\n n$4=_fun_Car_init(n$6:class Car *) virtual [line 9]\n *&honda:class Car *=n$4 [line 9]\n REMOVE_TEMPS(n$4,n$6); [line 9]\n " shape="box"] +6 [label="6: DeclStmt \n n$6=_fun___objc_alloc_no_fail(sizeof(class Car ):class Car *) [line 13]\n n$4=_fun_Car_init(n$6:class Car *) virtual [line 13]\n *&honda:class Car *=n$4 [line 13]\n REMOVE_TEMPS(n$4,n$6); [line 13]\n " shape="box"] 6 -> 5 ; -5 [label="5: Message Call: setRunning: \n n$3=*&honda:class Car * [line 10]\n _fun_Car_setRunning:(n$3:class Car *,1:signed char ) virtual [line 10]\n REMOVE_TEMPS(n$3); [line 10]\n " shape="box"] +5 [label="5: Message Call: setRunning: \n n$3=*&honda:class Car * [line 14]\n _fun_Car_setRunning:(n$3:class Car *,1:signed char ) virtual [line 14]\n REMOVE_TEMPS(n$3); [line 14]\n " shape="box"] 5 -> 4 ; -4 [label="4: Call _fun_NSLog \n n$0=_fun_NSString_stringWithUTF8String:(\"%d\":char *) [line 11]\n n$2=*&honda:class Car * [line 11]\n n$1=_fun_Car_running(n$2:class Car *) virtual [line 11]\n _fun_NSLog(n$0:struct objc_object *,n$1:int ) [line 11]\n REMOVE_TEMPS(n$0,n$1,n$2); [line 11]\n NULLIFY(&honda,false); [line 11]\n " shape="box"] +4 [label="4: Call _fun_NSLog \n n$0=_fun_NSString_stringWithUTF8String:(\"%d\":char *) [line 15]\n n$2=*&honda:class Car * [line 15]\n n$1=_fun_Car_running(n$2:class Car *) virtual [line 15]\n _fun_NSLog(n$0:struct objc_object *,n$1:int ) [line 15]\n REMOVE_TEMPS(n$0,n$1,n$2); [line 15]\n NULLIFY(&honda,false); [line 15]\n " shape="box"] 4 -> 3 ; -3 [label="3: Return Stmt \n *&return:int =0 [line 12]\n APPLY_ABSTRACTION; [line 12]\n " shape="box"] +3 [label="3: Return Stmt \n *&return:int =0 [line 16]\n APPLY_ABSTRACTION; [line 16]\n " shape="box"] 3 -> 2 ; 2 [label="2: Exit main \n " color=yellow style=filled] -1 [label="1: Start main\nFormals: \nLocals: honda:class Car * \n DECLARE_LOCALS(&return,&honda); [line 8]\n NULLIFY(&honda,false); [line 8]\n " color=yellow style=filled] +1 [label="1: Start main\nFormals: \nLocals: honda:class Car * \n DECLARE_LOCALS(&return,&honda); [line 12]\n NULLIFY(&honda,false); [line 12]\n " color=yellow style=filled] 1 -> 6 ; diff --git a/infer/tests/codetoanalyze/objc/frontend/property/main_car.m b/infer/tests/codetoanalyze/objc/frontend/property/main_car.m index 676bbebc6..1e5865ef5 100644 --- a/infer/tests/codetoanalyze/objc/frontend/property/main_car.m +++ b/infer/tests/codetoanalyze/objc/frontend/property/main_car.m @@ -1,6 +1,10 @@ /* - * Copyright (c) 2014 - Facebook. - * All rights reserved. +* Copyright (c) 2014 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ #import "Car.h" diff --git a/infer/tests/codetoanalyze/objc/frontend/property_in_protocol/MyProtocol.h b/infer/tests/codetoanalyze/objc/frontend/property_in_protocol/MyProtocol.h index 90ab27254..0fbe00d80 100644 --- a/infer/tests/codetoanalyze/objc/frontend/property_in_protocol/MyProtocol.h +++ b/infer/tests/codetoanalyze/objc/frontend/property_in_protocol/MyProtocol.h @@ -1,6 +1,10 @@ /* - * Copyright (c) 2014 - Facebook. - * All rights reserved. +* Copyright (c) 2014 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ #import diff --git a/infer/tests/codetoanalyze/objc/frontend/property_in_protocol/Test.dot b/infer/tests/codetoanalyze/objc/frontend/property_in_protocol/Test.dot index d92898729..183948113 100644 --- a/infer/tests/codetoanalyze/objc/frontend/property_in_protocol/Test.dot +++ b/infer/tests/codetoanalyze/objc/frontend/property_in_protocol/Test.dot @@ -1,5 +1,5 @@ digraph iCFG { -6 [label="6: BinaryOperatorStmt: Assign \n n$2=*&self:class Test * [line 10]\n n$3=*&numberOfFiles:int [line 10]\n *n$2.numberOfFiles:int =n$3 [line -1]\n REMOVE_TEMPS(n$2,n$3); [line -1]\n NULLIFY(&numberOfFiles,false); [line -1]\n NULLIFY(&self,false); [line -1]\n APPLY_ABSTRACTION; [line -1]\n " shape="box"] +6 [label="6: BinaryOperatorStmt: Assign \n n$2=*&self:class Test * [line 14]\n n$3=*&numberOfFiles:int [line 14]\n *n$2.numberOfFiles:int =n$3 [line -1]\n REMOVE_TEMPS(n$2,n$3); [line -1]\n NULLIFY(&numberOfFiles,false); [line -1]\n NULLIFY(&self,false); [line -1]\n APPLY_ABSTRACTION; [line -1]\n " shape="box"] 6 -> 5 ; diff --git a/infer/tests/codetoanalyze/objc/frontend/property_in_protocol/Test.h b/infer/tests/codetoanalyze/objc/frontend/property_in_protocol/Test.h index 4a754419d..6fd706c2e 100644 --- a/infer/tests/codetoanalyze/objc/frontend/property_in_protocol/Test.h +++ b/infer/tests/codetoanalyze/objc/frontend/property_in_protocol/Test.h @@ -1,6 +1,10 @@ /* - * Copyright (c) 2014 - Facebook. - * All rights reserved. +* Copyright (c) 2014 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ #import diff --git a/infer/tests/codetoanalyze/objc/frontend/property_in_protocol/Test.m b/infer/tests/codetoanalyze/objc/frontend/property_in_protocol/Test.m index c14f4e2e7..453119db3 100644 --- a/infer/tests/codetoanalyze/objc/frontend/property_in_protocol/Test.m +++ b/infer/tests/codetoanalyze/objc/frontend/property_in_protocol/Test.m @@ -1,6 +1,10 @@ /* - * Copyright (c) 2014 - Facebook. - * All rights reserved. +* Copyright (c) 2014 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ #import "Test.h" diff --git a/infer/tests/codetoanalyze/objc/frontend/protocol/protocol.dot b/infer/tests/codetoanalyze/objc/frontend/protocol/protocol.dot index 9e8fa057c..9f7898e12 100644 --- a/infer/tests/codetoanalyze/objc/frontend/protocol/protocol.dot +++ b/infer/tests/codetoanalyze/objc/frontend/protocol/protocol.dot @@ -1,17 +1,17 @@ digraph iCFG { -7 [label="7: Return Stmt \n APPLY_ABSTRACTION; [line 23]\n " shape="box"] +7 [label="7: Return Stmt \n APPLY_ABSTRACTION; [line 27]\n " shape="box"] 7 -> 2 ; -6 [label="6: Prune (false branch) \n PRUNE((n$0 == 0), false); [line 22]\n REMOVE_TEMPS(n$0,n$1); [line 22]\n " shape="invhouse"] +6 [label="6: Prune (false branch) \n PRUNE((n$0 == 0), false); [line 26]\n REMOVE_TEMPS(n$0,n$1); [line 26]\n " shape="invhouse"] 6 -> 3 ; -5 [label="5: Prune (true branch) \n PRUNE((n$0 != 0), true); [line 22]\n REMOVE_TEMPS(n$0,n$1); [line 22]\n " shape="invhouse"] +5 [label="5: Prune (true branch) \n PRUNE((n$0 != 0), true); [line 26]\n REMOVE_TEMPS(n$0,n$1); [line 26]\n " shape="invhouse"] 5 -> 7 ; -4 [label="4: Message Call: conformsToProtocol: \n n$1=*&self:class Bla * [line 22]\n n$0=_fun_Bla_conformsToProtocol:(n$1:class Bla *,\"Foo\":class Protocol *) virtual [line 22]\n NULLIFY(&self,false); [line 22]\n " shape="box"] +4 [label="4: Message Call: conformsToProtocol: \n n$1=*&self:class Bla * [line 26]\n n$0=_fun_Bla_conformsToProtocol:(n$1:class Bla *,\"Foo\":class Protocol *) virtual [line 26]\n NULLIFY(&self,false); [line 26]\n " shape="box"] 4 -> 5 ; @@ -23,7 +23,7 @@ digraph iCFG { 2 [label="2: Exit Bla_fooMethod \n " color=yellow style=filled] -1 [label="1: Start Bla_fooMethod\nFormals: self:class Bla *\nLocals: \n DECLARE_LOCALS(&return); [line 21]\n " color=yellow style=filled] +1 [label="1: Start Bla_fooMethod\nFormals: self:class Bla *\nLocals: \n DECLARE_LOCALS(&return); [line 25]\n " color=yellow style=filled] 1 -> 4 ; diff --git a/infer/tests/codetoanalyze/objc/frontend/protocol/protocol.m b/infer/tests/codetoanalyze/objc/frontend/protocol/protocol.m index 171b90da7..2de9bcf7e 100644 --- a/infer/tests/codetoanalyze/objc/frontend/protocol/protocol.m +++ b/infer/tests/codetoanalyze/objc/frontend/protocol/protocol.m @@ -1,6 +1,10 @@ /* - * Copyright (c) 2014 - Facebook. - * All rights reserved. +* Copyright (c) 2014 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ #import diff --git a/infer/tests/codetoanalyze/objc/frontend/returnstmt/void_return.dot b/infer/tests/codetoanalyze/objc/frontend/returnstmt/void_return.dot index 160d478bd..3a6fcc0b5 100644 --- a/infer/tests/codetoanalyze/objc/frontend/returnstmt/void_return.dot +++ b/infer/tests/codetoanalyze/objc/frontend/returnstmt/void_return.dot @@ -1,25 +1,25 @@ digraph iCFG { -14 [label="14: DeclStmt \n *&i:int =0 [line 15]\n " shape="box"] +14 [label="14: DeclStmt \n *&i:int =0 [line 19]\n " shape="box"] 14 -> 13 ; -13 [label="13: DeclStmt \n *&j:int =0 [line 16]\n " shape="box"] +13 [label="13: DeclStmt \n *&j:int =0 [line 20]\n " shape="box"] 13 -> 9 ; -12 [label="12: Return Stmt \n NULLIFY(&i,false); [line 18]\n NULLIFY(&j,false); [line 18]\n APPLY_ABSTRACTION; [line 18]\n " shape="box"] +12 [label="12: Return Stmt \n NULLIFY(&i,false); [line 22]\n NULLIFY(&j,false); [line 22]\n APPLY_ABSTRACTION; [line 22]\n " shape="box"] 12 -> 2 ; -11 [label="11: Prune (false branch) \n PRUNE(((n$2 == 0) == 0), false); [line 17]\n REMOVE_TEMPS(n$2); [line 17]\n " shape="invhouse"] +11 [label="11: Prune (false branch) \n PRUNE(((n$2 == 0) == 0), false); [line 21]\n REMOVE_TEMPS(n$2); [line 21]\n " shape="invhouse"] 11 -> 8 ; -10 [label="10: Prune (true branch) \n PRUNE(((n$2 == 0) != 0), true); [line 17]\n REMOVE_TEMPS(n$2); [line 17]\n " shape="invhouse"] +10 [label="10: Prune (true branch) \n PRUNE(((n$2 == 0) != 0), true); [line 21]\n REMOVE_TEMPS(n$2); [line 21]\n " shape="invhouse"] 10 -> 12 ; -9 [label="9: BinaryOperatorStmt: EQ \n n$2=*&i:int [line 17]\n " shape="box"] +9 [label="9: BinaryOperatorStmt: EQ \n n$2=*&i:int [line 21]\n " shape="box"] 9 -> 10 ; @@ -28,31 +28,31 @@ digraph iCFG { 8 -> 4 ; -7 [label="7: UnaryOperator \n n$1=*&i:int [line 22]\n *&i:int =(n$1 + 1) [line 22]\n REMOVE_TEMPS(n$1); [line 22]\n NULLIFY(&i,false); [line 22]\n APPLY_ABSTRACTION; [line 22]\n " shape="box"] +7 [label="7: UnaryOperator \n n$1=*&i:int [line 26]\n *&i:int =(n$1 + 1) [line 26]\n REMOVE_TEMPS(n$1); [line 26]\n NULLIFY(&i,false); [line 26]\n APPLY_ABSTRACTION; [line 26]\n " shape="box"] 7 -> 3 ; -6 [label="6: Prune (false branch) \n PRUNE(((n$0 == 0) == 0), false); [line 21]\n REMOVE_TEMPS(n$0); [line 21]\n APPLY_ABSTRACTION; [line 21]\n " shape="invhouse"] +6 [label="6: Prune (false branch) \n PRUNE(((n$0 == 0) == 0), false); [line 25]\n REMOVE_TEMPS(n$0); [line 25]\n APPLY_ABSTRACTION; [line 25]\n " shape="invhouse"] 6 -> 3 ; -5 [label="5: Prune (true branch) \n PRUNE(((n$0 == 0) != 0), true); [line 21]\n REMOVE_TEMPS(n$0); [line 21]\n " shape="invhouse"] +5 [label="5: Prune (true branch) \n PRUNE(((n$0 == 0) != 0), true); [line 25]\n REMOVE_TEMPS(n$0); [line 25]\n " shape="invhouse"] 5 -> 7 ; -4 [label="4: BinaryOperatorStmt: EQ \n n$0=*&j:int [line 21]\n NULLIFY(&j,false); [line 21]\n " shape="box"] +4 [label="4: BinaryOperatorStmt: EQ \n n$0=*&j:int [line 25]\n NULLIFY(&j,false); [line 25]\n " shape="box"] 4 -> 5 ; 4 -> 6 ; -3 [label="3: + \n NULLIFY(&i,false); [line 21]\n " ] +3 [label="3: + \n NULLIFY(&i,false); [line 25]\n " ] 3 -> 2 ; 2 [label="2: Exit MyClass_aMethod \n " color=yellow style=filled] -1 [label="1: Start MyClass_aMethod\nFormals: self:class MyClass *\nLocals: i:int j:int \n DECLARE_LOCALS(&return,&i,&j); [line 14]\n NULLIFY(&i,false); [line 14]\n NULLIFY(&j,false); [line 14]\n NULLIFY(&self,false); [line 14]\n " color=yellow style=filled] +1 [label="1: Start MyClass_aMethod\nFormals: self:class MyClass *\nLocals: i:int j:int \n DECLARE_LOCALS(&return,&i,&j); [line 18]\n NULLIFY(&i,false); [line 18]\n NULLIFY(&j,false); [line 18]\n NULLIFY(&self,false); [line 18]\n " color=yellow style=filled] 1 -> 14 ; diff --git a/infer/tests/codetoanalyze/objc/frontend/returnstmt/void_return.m b/infer/tests/codetoanalyze/objc/frontend/returnstmt/void_return.m index d7a9e0884..11438f982 100644 --- a/infer/tests/codetoanalyze/objc/frontend/returnstmt/void_return.m +++ b/infer/tests/codetoanalyze/objc/frontend/returnstmt/void_return.m @@ -1,6 +1,10 @@ /* - * Copyright (c) 2014 - Facebook. - * All rights reserved. +* Copyright (c) 2014 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ #import diff --git a/infer/tests/codetoanalyze/objc/frontend/self_static/Self.dot b/infer/tests/codetoanalyze/objc/frontend/self_static/Self.dot index 694063b21..d6839ab61 100644 --- a/infer/tests/codetoanalyze/objc/frontend/self_static/Self.dot +++ b/infer/tests/codetoanalyze/objc/frontend/self_static/Self.dot @@ -1,190 +1,190 @@ digraph iCFG { -51 [label="51: Return Stmt \n *&return:int =0 [line 95]\n APPLY_ABSTRACTION; [line 95]\n " shape="box"] +51 [label="51: Return Stmt \n *&return:int =0 [line 99]\n APPLY_ABSTRACTION; [line 99]\n " shape="box"] 51 -> 45 ; -50 [label="50: Return Stmt \n *&return:int =1 [line 94]\n APPLY_ABSTRACTION; [line 94]\n " shape="box"] +50 [label="50: Return Stmt \n *&return:int =1 [line 98]\n APPLY_ABSTRACTION; [line 98]\n " shape="box"] 50 -> 45 ; -49 [label="49: Prune (false branch) \n PRUNE(((sizeof(class A ) != n$23) == 0), false); [line 94]\n REMOVE_TEMPS(n$23); [line 94]\n " shape="invhouse"] +49 [label="49: Prune (false branch) \n PRUNE(((sizeof(class A ) != n$23) == 0), false); [line 98]\n REMOVE_TEMPS(n$23); [line 98]\n " shape="invhouse"] 49 -> 51 ; -48 [label="48: Prune (true branch) \n PRUNE(((sizeof(class A ) != n$23) != 0), true); [line 94]\n REMOVE_TEMPS(n$23); [line 94]\n " shape="invhouse"] +48 [label="48: Prune (true branch) \n PRUNE(((sizeof(class A ) != n$23) != 0), true); [line 98]\n REMOVE_TEMPS(n$23); [line 98]\n " shape="invhouse"] 48 -> 50 ; -47 [label="47: BinaryOperatorStmt: NE \n n$23=*&c:struct objc_class * [line 94]\n NULLIFY(&c,false); [line 94]\n " shape="box"] +47 [label="47: BinaryOperatorStmt: NE \n n$23=*&c:struct objc_class * [line 98]\n NULLIFY(&c,false); [line 98]\n " shape="box"] 47 -> 48 ; 47 -> 49 ; -46 [label="46: + \n NULLIFY(&c,false); [line 94]\n " ] +46 [label="46: + \n NULLIFY(&c,false); [line 98]\n " ] 46 -> 45 ; 45 [label="45: Exit A_used_in_binary_op: \n " color=yellow style=filled] -44 [label="44: Start A_used_in_binary_op:\nFormals: c:struct objc_class *\nLocals: \n DECLARE_LOCALS(&return); [line 92]\n " color=yellow style=filled] +44 [label="44: Start A_used_in_binary_op:\nFormals: c:struct objc_class *\nLocals: \n DECLARE_LOCALS(&return); [line 96]\n " color=yellow style=filled] 44 -> 47 ; -43 [label="43: Return Stmt \n n$22=_fun_NSStringFromClass(sizeof(class A ):class A ) [line 89]\n *&return:class NSString *=n$22 [line 89]\n REMOVE_TEMPS(n$22); [line 89]\n APPLY_ABSTRACTION; [line 89]\n " shape="box"] +43 [label="43: Return Stmt \n n$22=_fun_NSStringFromClass(sizeof(class A ):class A ) [line 93]\n *&return:class NSString *=n$22 [line 93]\n REMOVE_TEMPS(n$22); [line 93]\n APPLY_ABSTRACTION; [line 93]\n " shape="box"] 43 -> 42 ; 42 [label="42: Exit A_loggerName \n " color=yellow style=filled] -41 [label="41: Start A_loggerName\nFormals: self:class A *\nLocals: \n DECLARE_LOCALS(&return); [line 87]\n NULLIFY(&self,false); [line 87]\n " color=yellow style=filled] +41 [label="41: Start A_loggerName\nFormals: self:class A *\nLocals: \n DECLARE_LOCALS(&return); [line 91]\n NULLIFY(&self,false); [line 91]\n " color=yellow style=filled] 41 -> 43 ; -40 [label="40: Message Call: init \n n$19=*&self:class A * [line 84]\n n$18=_fun_C_init(n$19:class A *) [line 84]\n REMOVE_TEMPS(n$18,n$19); [line 84]\n NULLIFY(&self,false); [line 84]\n APPLY_ABSTRACTION; [line 84]\n " shape="box"] +40 [label="40: Message Call: init \n n$19=*&self:class A * [line 88]\n n$18=_fun_C_init(n$19:class A *) [line 88]\n REMOVE_TEMPS(n$18,n$19); [line 88]\n NULLIFY(&self,false); [line 88]\n APPLY_ABSTRACTION; [line 88]\n " shape="box"] 40 -> 39 ; 39 [label="39: Exit A_init \n " color=yellow style=filled] -38 [label="38: Start A_init\nFormals: self:class A *\nLocals: \n DECLARE_LOCALS(&return); [line 83]\n " color=yellow style=filled] +38 [label="38: Start A_init\nFormals: self:class A *\nLocals: \n DECLARE_LOCALS(&return); [line 87]\n " color=yellow style=filled] 38 -> 40 ; -37 [label="37: Message Call: test_class \n _fun_C_test_class() [line 80]\n APPLY_ABSTRACTION; [line 80]\n " shape="box"] +37 [label="37: Message Call: test_class \n _fun_C_test_class() [line 84]\n APPLY_ABSTRACTION; [line 84]\n " shape="box"] 37 -> 36 ; 36 [label="36: Exit A_calling_super \n " color=yellow style=filled] -35 [label="35: Start A_calling_super\nFormals: \nLocals: \n DECLARE_LOCALS(&return); [line 79]\n " color=yellow style=filled] +35 [label="35: Start A_calling_super\nFormals: \nLocals: \n DECLARE_LOCALS(&return); [line 83]\n " color=yellow style=filled] 35 -> 37 ; -34 [label="34: Return Stmt \n n$15=*&object:class B * [line 76]\n n$14=_fun_B_isC:(n$15:class B *,sizeof(class A ):class A ) virtual [line 76]\n *&return:signed char =n$14 [line 76]\n REMOVE_TEMPS(n$14,n$15); [line 76]\n NULLIFY(&object,false); [line 76]\n APPLY_ABSTRACTION; [line 76]\n " shape="box"] +34 [label="34: Return Stmt \n n$15=*&object:class B * [line 80]\n n$14=_fun_B_isC:(n$15:class B *,sizeof(class A ):class A ) virtual [line 80]\n *&return:signed char =n$14 [line 80]\n REMOVE_TEMPS(n$14,n$15); [line 80]\n NULLIFY(&object,false); [line 80]\n APPLY_ABSTRACTION; [line 80]\n " shape="box"] 34 -> 33 ; 33 [label="33: Exit A_use_class_in_other_ways: \n " color=yellow style=filled] -32 [label="32: Start A_use_class_in_other_ways:\nFormals: self:class A * object:class B *\nLocals: \n DECLARE_LOCALS(&return); [line 75]\n NULLIFY(&self,false); [line 75]\n " color=yellow style=filled] +32 [label="32: Start A_use_class_in_other_ways:\nFormals: self:class A * object:class B *\nLocals: \n DECLARE_LOCALS(&return); [line 79]\n NULLIFY(&self,false); [line 79]\n " color=yellow style=filled] 32 -> 34 ; -31 [label="31: DeclStmt \n n$12=_fun___objc_alloc_no_fail(sizeof(class B ):class B *) [line 71]\n n$13=_fun_B_init(n$12:class B *) virtual [line 71]\n *&b:class B *=n$13 [line 71]\n REMOVE_TEMPS(n$12,n$13); [line 71]\n NULLIFY(&b,false); [line 71]\n " shape="box"] +31 [label="31: DeclStmt \n n$12=_fun___objc_alloc_no_fail(sizeof(class B ):class B *) [line 75]\n n$13=_fun_B_init(n$12:class B *) virtual [line 75]\n *&b:class B *=n$13 [line 75]\n REMOVE_TEMPS(n$12,n$13); [line 75]\n NULLIFY(&b,false); [line 75]\n " shape="box"] 31 -> 30 ; -30 [label="30: Message Call: b_m \n _fun_B_b_m() [line 72]\n APPLY_ABSTRACTION; [line 72]\n " shape="box"] +30 [label="30: Message Call: b_m \n _fun_B_b_m() [line 76]\n APPLY_ABSTRACTION; [line 76]\n " shape="box"] 30 -> 29 ; 29 [label="29: Exit A_t \n " color=yellow style=filled] -28 [label="28: Start A_t\nFormals: self:class A *\nLocals: b:class B * \n DECLARE_LOCALS(&return,&b); [line 70]\n NULLIFY(&b,false); [line 70]\n NULLIFY(&self,false); [line 70]\n " color=yellow style=filled] +28 [label="28: Start A_t\nFormals: self:class A *\nLocals: b:class B * \n DECLARE_LOCALS(&return,&b); [line 74]\n NULLIFY(&b,false); [line 74]\n NULLIFY(&self,false); [line 74]\n " color=yellow style=filled] 28 -> 31 ; -27 [label="27: Message Call: test_class \n _fun_A_test_class() [line 67]\n APPLY_ABSTRACTION; [line 67]\n " shape="box"] +27 [label="27: Message Call: test_class \n _fun_A_test_class() [line 71]\n APPLY_ABSTRACTION; [line 71]\n " shape="box"] 27 -> 26 ; 26 [label="26: Exit A_call_class_instance_with_class_name \n " color=yellow style=filled] -25 [label="25: Start A_call_class_instance_with_class_name\nFormals: self:class A *\nLocals: \n DECLARE_LOCALS(&return); [line 66]\n NULLIFY(&self,false); [line 66]\n " color=yellow style=filled] +25 [label="25: Start A_call_class_instance_with_class_name\nFormals: self:class A *\nLocals: \n DECLARE_LOCALS(&return); [line 70]\n NULLIFY(&self,false); [line 70]\n " color=yellow style=filled] 25 -> 27 ; -24 [label="24: Message Call: test_class \n _fun_A_test_class() [line 63]\n APPLY_ABSTRACTION; [line 63]\n " shape="box"] +24 [label="24: Message Call: test_class \n _fun_A_test_class() [line 67]\n APPLY_ABSTRACTION; [line 67]\n " shape="box"] 24 -> 23 ; 23 [label="23: Exit A_call_class_instance \n " color=yellow style=filled] -22 [label="22: Start A_call_class_instance\nFormals: self:class A *\nLocals: \n DECLARE_LOCALS(&return); [line 62]\n NULLIFY(&self,false); [line 62]\n " color=yellow style=filled] +22 [label="22: Start A_call_class_instance\nFormals: self:class A *\nLocals: \n DECLARE_LOCALS(&return); [line 66]\n NULLIFY(&self,false); [line 66]\n " color=yellow style=filled] 22 -> 24 ; -21 [label="21: Call alloc \n n$6=_fun___objc_alloc_no_fail(sizeof(class A ):class A *) [line 59]\n REMOVE_TEMPS(n$6); [line 59]\n APPLY_ABSTRACTION; [line 59]\n " shape="box"] +21 [label="21: Call alloc \n n$6=_fun___objc_alloc_no_fail(sizeof(class A ):class A *) [line 63]\n REMOVE_TEMPS(n$6); [line 63]\n APPLY_ABSTRACTION; [line 63]\n " shape="box"] 21 -> 20 ; 20 [label="20: Exit A_call_alloc_instance \n " color=yellow style=filled] -19 [label="19: Start A_call_alloc_instance\nFormals: self:class A *\nLocals: \n DECLARE_LOCALS(&return); [line 58]\n NULLIFY(&self,false); [line 58]\n " color=yellow style=filled] +19 [label="19: Start A_call_alloc_instance\nFormals: self:class A *\nLocals: \n DECLARE_LOCALS(&return); [line 62]\n NULLIFY(&self,false); [line 62]\n " color=yellow style=filled] 19 -> 21 ; -18 [label="18: Call alloc \n n$2=_fun___objc_alloc_no_fail(sizeof(class A ):class A *) [line 55]\n REMOVE_TEMPS(n$2); [line 55]\n APPLY_ABSTRACTION; [line 55]\n " shape="box"] +18 [label="18: Call alloc \n n$2=_fun___objc_alloc_no_fail(sizeof(class A ):class A *) [line 59]\n REMOVE_TEMPS(n$2); [line 59]\n APPLY_ABSTRACTION; [line 59]\n " shape="box"] 18 -> 17 ; 17 [label="17: Exit A_call_alloc_class \n " color=yellow style=filled] -16 [label="16: Start A_call_alloc_class\nFormals: \nLocals: \n DECLARE_LOCALS(&return); [line 54]\n " color=yellow style=filled] +16 [label="16: Start A_call_alloc_class\nFormals: \nLocals: \n DECLARE_LOCALS(&return); [line 58]\n " color=yellow style=filled] 16 -> 18 ; -15 [label="15: Message Call: test_class \n _fun_A_test_class() [line 51]\n APPLY_ABSTRACTION; [line 51]\n " shape="box"] +15 [label="15: Message Call: test_class \n _fun_A_test_class() [line 55]\n APPLY_ABSTRACTION; [line 55]\n " shape="box"] 15 -> 14 ; 14 [label="14: Exit A_call_test_class \n " color=yellow style=filled] -13 [label="13: Start A_call_test_class\nFormals: \nLocals: \n DECLARE_LOCALS(&return); [line 50]\n " color=yellow style=filled] +13 [label="13: Start A_call_test_class\nFormals: \nLocals: \n DECLARE_LOCALS(&return); [line 54]\n " color=yellow style=filled] 13 -> 15 ; 12 [label="12: Exit A_test_class \n " color=yellow style=filled] -11 [label="11: Start A_test_class\nFormals: \nLocals: \n DECLARE_LOCALS(&return); [line 47]\n " color=yellow style=filled] +11 [label="11: Start A_test_class\nFormals: \nLocals: \n DECLARE_LOCALS(&return); [line 51]\n " color=yellow style=filled] 11 -> 12 ; -10 [label="10: Message Call: test \n n$0=*&self:class A * [line 44]\n _fun_A_test(n$0:class A *) virtual [line 44]\n REMOVE_TEMPS(n$0); [line 44]\n NULLIFY(&self,false); [line 44]\n APPLY_ABSTRACTION; [line 44]\n " shape="box"] +10 [label="10: Message Call: test \n n$0=*&self:class A * [line 48]\n _fun_A_test(n$0:class A *) virtual [line 48]\n REMOVE_TEMPS(n$0); [line 48]\n NULLIFY(&self,false); [line 48]\n APPLY_ABSTRACTION; [line 48]\n " shape="box"] 10 -> 9 ; 9 [label="9: Exit A_call_test \n " color=yellow style=filled] -8 [label="8: Start A_call_test\nFormals: self:class A *\nLocals: \n DECLARE_LOCALS(&return); [line 43]\n " color=yellow style=filled] +8 [label="8: Start A_call_test\nFormals: self:class A *\nLocals: \n DECLARE_LOCALS(&return); [line 47]\n " color=yellow style=filled] 8 -> 10 ; 7 [label="7: Exit A_test \n " color=yellow style=filled] -6 [label="6: Start A_test\nFormals: self:class A *\nLocals: \n DECLARE_LOCALS(&return); [line 38]\n NULLIFY(&self,false); [line 38]\n " color=yellow style=filled] +6 [label="6: Start A_test\nFormals: self:class A *\nLocals: \n DECLARE_LOCALS(&return); [line 42]\n NULLIFY(&self,false); [line 42]\n " color=yellow style=filled] 6 -> 7 ; -5 [label="5: Return Stmt \n *&return:signed char =1 [line 19]\n APPLY_ABSTRACTION; [line 19]\n " shape="box"] +5 [label="5: Return Stmt \n *&return:signed char =1 [line 23]\n APPLY_ABSTRACTION; [line 23]\n " shape="box"] 5 -> 4 ; 4 [label="4: Exit B_isC: \n " color=yellow style=filled] -3 [label="3: Start B_isC:\nFormals: self:class B * aClass:struct objc_class *\nLocals: \n DECLARE_LOCALS(&return); [line 18]\n NULLIFY(&aClass,false); [line 18]\n NULLIFY(&self,false); [line 18]\n " color=yellow style=filled] +3 [label="3: Start B_isC:\nFormals: self:class B * aClass:struct objc_class *\nLocals: \n DECLARE_LOCALS(&return); [line 22]\n NULLIFY(&aClass,false); [line 22]\n NULLIFY(&self,false); [line 22]\n " color=yellow style=filled] 3 -> 5 ; 2 [label="2: Exit B_b_m \n " color=yellow style=filled] -1 [label="1: Start B_b_m\nFormals: \nLocals: \n DECLARE_LOCALS(&return); [line 16]\n " color=yellow style=filled] +1 [label="1: Start B_b_m\nFormals: \nLocals: \n DECLARE_LOCALS(&return); [line 20]\n " color=yellow style=filled] 1 -> 2 ; diff --git a/infer/tests/codetoanalyze/objc/frontend/self_static/Self.m b/infer/tests/codetoanalyze/objc/frontend/self_static/Self.m index 65c22bfc0..28262b3e5 100644 --- a/infer/tests/codetoanalyze/objc/frontend/self_static/Self.m +++ b/infer/tests/codetoanalyze/objc/frontend/self_static/Self.m @@ -1,6 +1,10 @@ /* - * Copyright (c) 2014 - Facebook. - * All rights reserved. +* Copyright (c) 2014 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ #import diff --git a/infer/tests/codetoanalyze/objc/frontend/self_static/static.dot b/infer/tests/codetoanalyze/objc/frontend/self_static/static.dot index 7d8fae3b0..b763bd45b 100644 --- a/infer/tests/codetoanalyze/objc/frontend/self_static/static.dot +++ b/infer/tests/codetoanalyze/objc/frontend/self_static/static.dot @@ -1,56 +1,56 @@ digraph iCFG { -15 [label="15: Message Call: getX \n n$3=*&self:class MyClass * [line 33]\n n$2=_fun_MyClass_getX(n$3:class MyClass *) virtual [line 33]\n REMOVE_TEMPS(n$2,n$3); [line 33]\n NULLIFY(&self,false); [line 33]\n APPLY_ABSTRACTION; [line 33]\n " shape="box"] +15 [label="15: Message Call: getX \n n$3=*&self:class MyClass * [line 37]\n n$2=_fun_MyClass_getX(n$3:class MyClass *) virtual [line 37]\n REMOVE_TEMPS(n$2,n$3); [line 37]\n NULLIFY(&self,false); [line 37]\n APPLY_ABSTRACTION; [line 37]\n " shape="box"] 15 -> 14 ; 14 [label="14: Exit MyClass_anInstanceMethod2 \n " color=yellow style=filled] -13 [label="13: Start MyClass_anInstanceMethod2\nFormals: self:class MyClass *\nLocals: \n DECLARE_LOCALS(&return); [line 32]\n " color=yellow style=filled] +13 [label="13: Start MyClass_anInstanceMethod2\nFormals: self:class MyClass *\nLocals: \n DECLARE_LOCALS(&return); [line 36]\n " color=yellow style=filled] 13 -> 15 ; -12 [label="12: Return Stmt \n *&return:int =0 [line 29]\n APPLY_ABSTRACTION; [line 29]\n " shape="box"] +12 [label="12: Return Stmt \n *&return:int =0 [line 33]\n APPLY_ABSTRACTION; [line 33]\n " shape="box"] 12 -> 11 ; 11 [label="11: Exit MyClass_getX \n " color=yellow style=filled] -10 [label="10: Start MyClass_getX\nFormals: self:class MyClass *\nLocals: \n DECLARE_LOCALS(&return); [line 28]\n NULLIFY(&self,false); [line 28]\n " color=yellow style=filled] +10 [label="10: Start MyClass_getX\nFormals: self:class MyClass *\nLocals: \n DECLARE_LOCALS(&return); [line 32]\n NULLIFY(&self,false); [line 32]\n " color=yellow style=filled] 10 -> 12 ; -9 [label="9: Message Call: aClassMethod \n _fun_MyClass_aClassMethod() [line 25]\n APPLY_ABSTRACTION; [line 25]\n " shape="box"] +9 [label="9: Message Call: aClassMethod \n _fun_MyClass_aClassMethod() [line 29]\n APPLY_ABSTRACTION; [line 29]\n " shape="box"] 9 -> 8 ; 8 [label="8: Exit MyClass_aClassMethod2 \n " color=yellow style=filled] -7 [label="7: Start MyClass_aClassMethod2\nFormals: \nLocals: \n DECLARE_LOCALS(&return); [line 24]\n " color=yellow style=filled] +7 [label="7: Start MyClass_aClassMethod2\nFormals: \nLocals: \n DECLARE_LOCALS(&return); [line 28]\n " color=yellow style=filled] 7 -> 9 ; -6 [label="6: Message Call: aClassMethod \n _fun_MyClass_aClassMethod() [line 21]\n APPLY_ABSTRACTION; [line 21]\n " shape="box"] +6 [label="6: Message Call: aClassMethod \n _fun_MyClass_aClassMethod() [line 25]\n APPLY_ABSTRACTION; [line 25]\n " shape="box"] 6 -> 5 ; 5 [label="5: Exit MyClass_anInstanceMethod \n " color=yellow style=filled] -4 [label="4: Start MyClass_anInstanceMethod\nFormals: self:class MyClass *\nLocals: \n DECLARE_LOCALS(&return); [line 20]\n NULLIFY(&self,false); [line 20]\n " color=yellow style=filled] +4 [label="4: Start MyClass_anInstanceMethod\nFormals: self:class MyClass *\nLocals: \n DECLARE_LOCALS(&return); [line 24]\n NULLIFY(&self,false); [line 24]\n " color=yellow style=filled] 4 -> 6 ; -3 [label="3: DeclStmt \n n$1=_fun___objc_alloc_no_fail(sizeof(class MyClass ):class MyClass *) [line 17]\n *&myClass:class MyClass *=n$1 [line 17]\n REMOVE_TEMPS(n$1); [line 17]\n NULLIFY(&myClass,false); [line 17]\n APPLY_ABSTRACTION; [line 17]\n " shape="box"] +3 [label="3: DeclStmt \n n$1=_fun___objc_alloc_no_fail(sizeof(class MyClass ):class MyClass *) [line 21]\n *&myClass:class MyClass *=n$1 [line 21]\n REMOVE_TEMPS(n$1); [line 21]\n NULLIFY(&myClass,false); [line 21]\n APPLY_ABSTRACTION; [line 21]\n " shape="box"] 3 -> 2 ; 2 [label="2: Exit MyClass_aClassMethod \n " color=yellow style=filled] -1 [label="1: Start MyClass_aClassMethod\nFormals: \nLocals: myClass:class MyClass * \n DECLARE_LOCALS(&return,&myClass); [line 16]\n NULLIFY(&myClass,false); [line 16]\n " color=yellow style=filled] +1 [label="1: Start MyClass_aClassMethod\nFormals: \nLocals: myClass:class MyClass * \n DECLARE_LOCALS(&return,&myClass); [line 20]\n NULLIFY(&myClass,false); [line 20]\n " color=yellow style=filled] 1 -> 3 ; diff --git a/infer/tests/codetoanalyze/objc/frontend/self_static/static.m b/infer/tests/codetoanalyze/objc/frontend/self_static/static.m index 303e2741c..749c39cd6 100644 --- a/infer/tests/codetoanalyze/objc/frontend/self_static/static.m +++ b/infer/tests/codetoanalyze/objc/frontend/self_static/static.m @@ -1,6 +1,10 @@ /* - * Copyright (c) 2014 - Facebook. - * All rights reserved. +* Copyright (c) 2014 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ #import diff --git a/infer/tests/codetoanalyze/objc/frontend/strings/global_string_literal.dot b/infer/tests/codetoanalyze/objc/frontend/strings/global_string_literal.dot index 3ff968df6..667f0b00e 100644 --- a/infer/tests/codetoanalyze/objc/frontend/strings/global_string_literal.dot +++ b/infer/tests/codetoanalyze/objc/frontend/strings/global_string_literal.dot @@ -1,12 +1,12 @@ digraph iCFG { -3 [label="3: Return Stmt \n *&return:int =0 [line 11]\n APPLY_ABSTRACTION; [line 11]\n " shape="box"] +3 [label="3: Return Stmt \n *&return:int =0 [line 15]\n APPLY_ABSTRACTION; [line 15]\n " shape="box"] 3 -> 2 ; 2 [label="2: Exit main \n " color=yellow style=filled] -1 [label="1: Start main\nFormals: \nLocals: \n DECLARE_LOCALS(&return); [line 10]\n " color=yellow style=filled] +1 [label="1: Start main\nFormals: \nLocals: \n DECLARE_LOCALS(&return); [line 14]\n " color=yellow style=filled] 1 -> 3 ; diff --git a/infer/tests/codetoanalyze/objc/frontend/strings/global_string_literal.m b/infer/tests/codetoanalyze/objc/frontend/strings/global_string_literal.m index 775802fb3..a63fcbf49 100644 --- a/infer/tests/codetoanalyze/objc/frontend/strings/global_string_literal.m +++ b/infer/tests/codetoanalyze/objc/frontend/strings/global_string_literal.m @@ -1,6 +1,10 @@ /* - * Copyright (c) 2014 - Facebook. - * All rights reserved. +* Copyright (c) 2014 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ #import diff --git a/infer/tests/codetoanalyze/objc/frontend/strings/string_literal.dot b/infer/tests/codetoanalyze/objc/frontend/strings/string_literal.dot index 424568027..2ec183565 100644 --- a/infer/tests/codetoanalyze/objc/frontend/strings/string_literal.dot +++ b/infer/tests/codetoanalyze/objc/frontend/strings/string_literal.dot @@ -1,16 +1,16 @@ digraph iCFG { -4 [label="4: DeclStmt \n n$0=_fun_NSString_stringWithUTF8String:(\"Rodriguez\":char *) [line 9]\n *&lastName:class NSString *=n$0 [line 9]\n REMOVE_TEMPS(n$0); [line 9]\n NULLIFY(&lastName,false); [line 9]\n " shape="box"] +4 [label="4: DeclStmt \n n$0=_fun_NSString_stringWithUTF8String:(\"Rodriguez\":char *) [line 13]\n *&lastName:class NSString *=n$0 [line 13]\n REMOVE_TEMPS(n$0); [line 13]\n NULLIFY(&lastName,false); [line 13]\n " shape="box"] 4 -> 3 ; -3 [label="3: Return Stmt \n *&return:int =0 [line 10]\n APPLY_ABSTRACTION; [line 10]\n " shape="box"] +3 [label="3: Return Stmt \n *&return:int =0 [line 14]\n APPLY_ABSTRACTION; [line 14]\n " shape="box"] 3 -> 2 ; 2 [label="2: Exit main \n " color=yellow style=filled] -1 [label="1: Start main\nFormals: \nLocals: lastName:class NSString * \n DECLARE_LOCALS(&return,&lastName); [line 8]\n NULLIFY(&lastName,false); [line 8]\n " color=yellow style=filled] +1 [label="1: Start main\nFormals: \nLocals: lastName:class NSString * \n DECLARE_LOCALS(&return,&lastName); [line 12]\n NULLIFY(&lastName,false); [line 12]\n " color=yellow style=filled] 1 -> 4 ; diff --git a/infer/tests/codetoanalyze/objc/frontend/strings/string_literal.m b/infer/tests/codetoanalyze/objc/frontend/strings/string_literal.m index 620fa4515..595412f7e 100644 --- a/infer/tests/codetoanalyze/objc/frontend/strings/string_literal.m +++ b/infer/tests/codetoanalyze/objc/frontend/strings/string_literal.m @@ -1,6 +1,10 @@ /* - * Copyright (c) 2014 - Facebook. - * All rights reserved. +* Copyright (c) 2014 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ #import diff --git a/infer/tests/codetoanalyze/objc/frontend/subclass/A.h b/infer/tests/codetoanalyze/objc/frontend/subclass/A.h index 97776fa8b..e50efbecd 100644 --- a/infer/tests/codetoanalyze/objc/frontend/subclass/A.h +++ b/infer/tests/codetoanalyze/objc/frontend/subclass/A.h @@ -1,6 +1,10 @@ /* - * Copyright (c) 2014 - Facebook. - * All rights reserved. +* Copyright (c) 2014 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ #import diff --git a/infer/tests/codetoanalyze/objc/frontend/subclass/A.m b/infer/tests/codetoanalyze/objc/frontend/subclass/A.m index 1b525e121..f9d9acaf2 100644 --- a/infer/tests/codetoanalyze/objc/frontend/subclass/A.m +++ b/infer/tests/codetoanalyze/objc/frontend/subclass/A.m @@ -1,6 +1,10 @@ /* - * Copyright (c) 2014 - Facebook. - * All rights reserved. +* Copyright (c) 2014 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ #import diff --git a/infer/tests/codetoanalyze/objc/frontend/subclass/MyClass.dot b/infer/tests/codetoanalyze/objc/frontend/subclass/MyClass.dot index c5ad45f65..5b5e1a2fa 100644 --- a/infer/tests/codetoanalyze/objc/frontend/subclass/MyClass.dot +++ b/infer/tests/codetoanalyze/objc/frontend/subclass/MyClass.dot @@ -1,12 +1,12 @@ digraph iCFG { -3 [label="3: Return Stmt \n *&return:int =1 [line 11]\n APPLY_ABSTRACTION; [line 11]\n " shape="box"] +3 [label="3: Return Stmt \n *&return:int =1 [line 15]\n APPLY_ABSTRACTION; [line 15]\n " shape="box"] 3 -> 2 ; 2 [label="2: Exit MyClass_myNumber \n " color=yellow style=filled] -1 [label="1: Start MyClass_myNumber\nFormals: self:class MyClass *\nLocals: \n DECLARE_LOCALS(&return); [line 10]\n NULLIFY(&self,false); [line 10]\n " color=yellow style=filled] +1 [label="1: Start MyClass_myNumber\nFormals: self:class MyClass *\nLocals: \n DECLARE_LOCALS(&return); [line 14]\n NULLIFY(&self,false); [line 14]\n " color=yellow style=filled] 1 -> 3 ; diff --git a/infer/tests/codetoanalyze/objc/frontend/subclass/MyClass.h b/infer/tests/codetoanalyze/objc/frontend/subclass/MyClass.h index a876c3133..7b3b245ef 100644 --- a/infer/tests/codetoanalyze/objc/frontend/subclass/MyClass.h +++ b/infer/tests/codetoanalyze/objc/frontend/subclass/MyClass.h @@ -1,6 +1,10 @@ /* - * Copyright (c) 2014 - Facebook. - * All rights reserved. +* Copyright (c) 2014 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ #import diff --git a/infer/tests/codetoanalyze/objc/frontend/subclass/MyClass.m b/infer/tests/codetoanalyze/objc/frontend/subclass/MyClass.m index f49828874..686b20ed0 100644 --- a/infer/tests/codetoanalyze/objc/frontend/subclass/MyClass.m +++ b/infer/tests/codetoanalyze/objc/frontend/subclass/MyClass.m @@ -1,6 +1,10 @@ /* - * Copyright (c) 2014 - Facebook. - * All rights reserved. +* Copyright (c) 2014 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ #import "MyClass.h" diff --git a/infer/tests/codetoanalyze/objc/frontend/subclass/MySubClass.dot b/infer/tests/codetoanalyze/objc/frontend/subclass/MySubClass.dot index f05d6997a..5f7867885 100644 --- a/infer/tests/codetoanalyze/objc/frontend/subclass/MySubClass.dot +++ b/infer/tests/codetoanalyze/objc/frontend/subclass/MySubClass.dot @@ -1,16 +1,16 @@ digraph iCFG { -4 [label="4: DeclStmt \n n$2=*&self:class MySubclass * [line 13]\n n$1=_fun_MyClass_myNumber(n$2:class MySubclass *) [line 13]\n *&subclassNumber:int =(n$1 + 1) [line 13]\n REMOVE_TEMPS(n$1,n$2); [line 13]\n NULLIFY(&self,false); [line 13]\n " shape="box"] +4 [label="4: DeclStmt \n n$2=*&self:class MySubclass * [line 17]\n n$1=_fun_MyClass_myNumber(n$2:class MySubclass *) [line 17]\n *&subclassNumber:int =(n$1 + 1) [line 17]\n REMOVE_TEMPS(n$1,n$2); [line 17]\n NULLIFY(&self,false); [line 17]\n " shape="box"] 4 -> 3 ; -3 [label="3: Return Stmt \n n$0=*&subclassNumber:int [line 14]\n *&return:int =n$0 [line 14]\n REMOVE_TEMPS(n$0); [line 14]\n NULLIFY(&subclassNumber,false); [line 14]\n APPLY_ABSTRACTION; [line 14]\n " shape="box"] +3 [label="3: Return Stmt \n n$0=*&subclassNumber:int [line 18]\n *&return:int =n$0 [line 18]\n REMOVE_TEMPS(n$0); [line 18]\n NULLIFY(&subclassNumber,false); [line 18]\n APPLY_ABSTRACTION; [line 18]\n " shape="box"] 3 -> 2 ; 2 [label="2: Exit MySubclass_myNumber \n " color=yellow style=filled] -1 [label="1: Start MySubclass_myNumber\nFormals: self:class MySubclass *\nLocals: subclassNumber:int \n DECLARE_LOCALS(&return,&subclassNumber); [line 11]\n NULLIFY(&subclassNumber,false); [line 11]\n " color=yellow style=filled] +1 [label="1: Start MySubclass_myNumber\nFormals: self:class MySubclass *\nLocals: subclassNumber:int \n DECLARE_LOCALS(&return,&subclassNumber); [line 15]\n NULLIFY(&subclassNumber,false); [line 15]\n " color=yellow style=filled] 1 -> 4 ; diff --git a/infer/tests/codetoanalyze/objc/frontend/subclass/MySubClass.h b/infer/tests/codetoanalyze/objc/frontend/subclass/MySubClass.h index 3b52328fe..ffb295e46 100644 --- a/infer/tests/codetoanalyze/objc/frontend/subclass/MySubClass.h +++ b/infer/tests/codetoanalyze/objc/frontend/subclass/MySubClass.h @@ -1,6 +1,10 @@ /* - * Copyright (c) 2014 - Facebook. - * All rights reserved. +* Copyright (c) 2014 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ #import "MyClass.h" diff --git a/infer/tests/codetoanalyze/objc/frontend/subclass/MySubClass.m b/infer/tests/codetoanalyze/objc/frontend/subclass/MySubClass.m index 7ba5f5b8f..e729ecabb 100644 --- a/infer/tests/codetoanalyze/objc/frontend/subclass/MySubClass.m +++ b/infer/tests/codetoanalyze/objc/frontend/subclass/MySubClass.m @@ -1,6 +1,10 @@ /* - * Copyright (c) 2014 - Facebook. - * All rights reserved. +* Copyright (c) 2014 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ #import "MySubClass.h" diff --git a/infer/tests/codetoanalyze/objc/frontend/subclass/main.c b/infer/tests/codetoanalyze/objc/frontend/subclass/main.c index 6eb6d6b35..a7f212842 100644 --- a/infer/tests/codetoanalyze/objc/frontend/subclass/main.c +++ b/infer/tests/codetoanalyze/objc/frontend/subclass/main.c @@ -1,6 +1,10 @@ /* - * Copyright (c) 2014 - Facebook. - * All rights reserved. +* Copyright (c) 2014 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ #import "A.h" diff --git a/infer/tests/codetoanalyze/objc/frontend/subclass/main.dot b/infer/tests/codetoanalyze/objc/frontend/subclass/main.dot index ed9d5e5c9..8f42dd557 100644 --- a/infer/tests/codetoanalyze/objc/frontend/subclass/main.dot +++ b/infer/tests/codetoanalyze/objc/frontend/subclass/main.dot @@ -1,16 +1,16 @@ digraph iCFG { -4 [label="4: DeclStmt \n n$2=_fun___objc_alloc_no_fail(sizeof(class A ):class A *) [line 9]\n n$0=_fun_A_init(n$2:class A *) virtual [line 9]\n *&a:class A *=n$0 [line 9]\n REMOVE_TEMPS(n$0,n$2); [line 9]\n NULLIFY(&a,false); [line 9]\n " shape="box"] +4 [label="4: DeclStmt \n n$2=_fun___objc_alloc_no_fail(sizeof(class A ):class A *) [line 13]\n n$0=_fun_A_init(n$2:class A *) virtual [line 13]\n *&a:class A *=n$0 [line 13]\n REMOVE_TEMPS(n$0,n$2); [line 13]\n NULLIFY(&a,false); [line 13]\n " shape="box"] 4 -> 3 ; -3 [label="3: Return Stmt \n *&return:int =0 [line 10]\n APPLY_ABSTRACTION; [line 10]\n " shape="box"] +3 [label="3: Return Stmt \n *&return:int =0 [line 14]\n APPLY_ABSTRACTION; [line 14]\n " shape="box"] 3 -> 2 ; 2 [label="2: Exit main \n " color=yellow style=filled] -1 [label="1: Start main\nFormals: \nLocals: a:class A * \n DECLARE_LOCALS(&return,&a); [line 8]\n NULLIFY(&a,false); [line 8]\n " color=yellow style=filled] +1 [label="1: Start main\nFormals: \nLocals: a:class A * \n DECLARE_LOCALS(&return,&a); [line 12]\n NULLIFY(&a,false); [line 12]\n " color=yellow style=filled] 1 -> 4 ; diff --git a/infer/tests/codetoanalyze/objc/frontend/types/attributes.dot b/infer/tests/codetoanalyze/objc/frontend/types/attributes.dot index 8f4b1d90d..8b70df5d5 100644 --- a/infer/tests/codetoanalyze/objc/frontend/types/attributes.dot +++ b/infer/tests/codetoanalyze/objc/frontend/types/attributes.dot @@ -1,56 +1,56 @@ digraph iCFG { -14 [label="14: DeclStmt \n *&aWeakRef:class A __weak *=0 [line 18]\n " shape="box"] +14 [label="14: DeclStmt \n *&aWeakRef:class A __weak *=0 [line 22]\n " shape="box"] 14 -> 13 ; -13 [label="13: DeclStmt \n _fun___objc_retain(0:class A *) [line 19]\n *&aStrongRef:class A *=0 [line 19]\n NULLIFY(&aStrongRef,false); [line 19]\n " shape="box"] +13 [label="13: DeclStmt \n _fun___objc_retain(0:class A *) [line 23]\n *&aStrongRef:class A *=0 [line 23]\n NULLIFY(&aStrongRef,false); [line 23]\n " shape="box"] 13 -> 12 ; -12 [label="12: DeclStmt \n *&anUnsafeUnretRef:class A __unsafe_unretained *=0 [line 20]\n " shape="box"] +12 [label="12: DeclStmt \n *&anUnsafeUnretRef:class A __unsafe_unretained *=0 [line 24]\n " shape="box"] 12 -> 11 ; -11 [label="11: DeclStmt \n _fun___objc_retain(0:class A __autoreleasing *) [line 21]\n _fun___set_autorelease_attribute(0:class A __autoreleasing *) [line 21]\n *&anAutoRelRef:class A __autoreleasing *=0 [line 21]\n " shape="box"] +11 [label="11: DeclStmt \n _fun___objc_retain(0:class A __autoreleasing *) [line 25]\n _fun___set_autorelease_attribute(0:class A __autoreleasing *) [line 25]\n *&anAutoRelRef:class A __autoreleasing *=0 [line 25]\n " shape="box"] 11 -> 10 ; -10 [label="10: DeclStmt \n _fun___objc_retain(0:class A *) [line 22]\n *&aStdRef:class A *=0 [line 22]\n " shape="box"] +10 [label="10: DeclStmt \n _fun___objc_retain(0:class A *) [line 26]\n *&aStdRef:class A *=0 [line 26]\n " shape="box"] 10 -> 9 ; -9 [label="9: BinaryOperatorStmt: Assign \n n$10=_fun___objc_alloc_no_fail(sizeof(class A ):class A *) [line 25]\n *&aStrongRef:class A *=n$10 [line 25]\n REMOVE_TEMPS(n$10); [line 25]\n " shape="box"] +9 [label="9: BinaryOperatorStmt: Assign \n n$10=_fun___objc_alloc_no_fail(sizeof(class A ):class A *) [line 29]\n *&aStrongRef:class A *=n$10 [line 29]\n REMOVE_TEMPS(n$10); [line 29]\n " shape="box"] 9 -> 8 ; -8 [label="8: BinaryOperatorStmt: Assign \n n$7=*&aStrongRef:class A * [line 27]\n _fun___objc_retain(n$7:class A *) [line 27]\n n$8=*&aStdRef:class A * [line 27]\n *&aStdRef:class A *=n$7 [line 27]\n _fun___objc_release(n$8:class A *) [line 27]\n REMOVE_TEMPS(n$7,n$8); [line 27]\n " shape="box"] +8 [label="8: BinaryOperatorStmt: Assign \n n$7=*&aStrongRef:class A * [line 31]\n _fun___objc_retain(n$7:class A *) [line 31]\n n$8=*&aStdRef:class A * [line 31]\n *&aStdRef:class A *=n$7 [line 31]\n _fun___objc_release(n$8:class A *) [line 31]\n REMOVE_TEMPS(n$7,n$8); [line 31]\n " shape="box"] 8 -> 7 ; -7 [label="7: BinaryOperatorStmt: Assign \n _fun___objc_retain(0:class A *) [line 29]\n n$6=*&aStrongRef:class A * [line 29]\n *&aStrongRef:class A *=0 [line 29]\n _fun___objc_release(n$6:class A *) [line 29]\n REMOVE_TEMPS(n$6); [line 29]\n NULLIFY(&aStrongRef,false); [line 29]\n " shape="box"] +7 [label="7: BinaryOperatorStmt: Assign \n _fun___objc_retain(0:class A *) [line 33]\n n$6=*&aStrongRef:class A * [line 33]\n *&aStrongRef:class A *=0 [line 33]\n _fun___objc_release(n$6:class A *) [line 33]\n REMOVE_TEMPS(n$6); [line 33]\n NULLIFY(&aStrongRef,false); [line 33]\n " shape="box"] 7 -> 6 ; -6 [label="6: BinaryOperatorStmt: Assign \n n$4=*&aStdRef:class A * [line 31]\n _fun___objc_retain(n$4:class A *) [line 31]\n n$5=*&aWeakRef:class A * [line 31]\n *&aWeakRef:class A *=n$4 [line 31]\n _fun___objc_release(n$5:class A *) [line 31]\n REMOVE_TEMPS(n$4,n$5); [line 31]\n NULLIFY(&aWeakRef,false); [line 31]\n " shape="box"] +6 [label="6: BinaryOperatorStmt: Assign \n n$4=*&aStdRef:class A * [line 35]\n _fun___objc_retain(n$4:class A *) [line 35]\n n$5=*&aWeakRef:class A * [line 35]\n *&aWeakRef:class A *=n$4 [line 35]\n _fun___objc_release(n$5:class A *) [line 35]\n REMOVE_TEMPS(n$4,n$5); [line 35]\n NULLIFY(&aWeakRef,false); [line 35]\n " shape="box"] 6 -> 5 ; -5 [label="5: BinaryOperatorStmt: Assign \n n$2=*&aStdRef:class A * [line 33]\n _fun___objc_retain(n$2:class A *) [line 33]\n n$3=*&anAutoRelRef:class A * [line 33]\n *&anAutoRelRef:class A *=n$2 [line 33]\n _fun___objc_release(n$3:class A *) [line 33]\n REMOVE_TEMPS(n$2,n$3); [line 33]\n NULLIFY(&anAutoRelRef,false); [line 33]\n " shape="box"] +5 [label="5: BinaryOperatorStmt: Assign \n n$2=*&aStdRef:class A * [line 37]\n _fun___objc_retain(n$2:class A *) [line 37]\n n$3=*&anAutoRelRef:class A * [line 37]\n *&anAutoRelRef:class A *=n$2 [line 37]\n _fun___objc_release(n$3:class A *) [line 37]\n REMOVE_TEMPS(n$2,n$3); [line 37]\n NULLIFY(&anAutoRelRef,false); [line 37]\n " shape="box"] 5 -> 4 ; -4 [label="4: BinaryOperatorStmt: Assign \n n$0=*&aStdRef:class A * [line 35]\n _fun___objc_retain(n$0:class A *) [line 35]\n n$1=*&anUnsafeUnretRef:class A * [line 35]\n *&anUnsafeUnretRef:class A *=n$0 [line 35]\n _fun___objc_release(n$1:class A *) [line 35]\n REMOVE_TEMPS(n$0,n$1); [line 35]\n NULLIFY(&aStdRef,false); [line 35]\n NULLIFY(&anUnsafeUnretRef,false); [line 35]\n " shape="box"] +4 [label="4: BinaryOperatorStmt: Assign \n n$0=*&aStdRef:class A * [line 39]\n _fun___objc_retain(n$0:class A *) [line 39]\n n$1=*&anUnsafeUnretRef:class A * [line 39]\n *&anUnsafeUnretRef:class A *=n$0 [line 39]\n _fun___objc_release(n$1:class A *) [line 39]\n REMOVE_TEMPS(n$0,n$1); [line 39]\n NULLIFY(&aStdRef,false); [line 39]\n NULLIFY(&anUnsafeUnretRef,false); [line 39]\n " shape="box"] 4 -> 3 ; -3 [label="3: Return Stmt \n *&return:int =0 [line 39]\n APPLY_ABSTRACTION; [line 39]\n " shape="box"] +3 [label="3: Return Stmt \n *&return:int =0 [line 43]\n APPLY_ABSTRACTION; [line 43]\n " shape="box"] 3 -> 2 ; 2 [label="2: Exit main \n " color=yellow style=filled] -1 [label="1: Start main\nFormals: \nLocals: aWeakRef:class A __weak * aStrongRef:class A * anUnsafeUnretRef:class A __unsafe_unretained * anAutoRelRef:class A __autoreleasing * aStdRef:class A * \n DECLARE_LOCALS(&return,&aWeakRef,&aStrongRef,&anUnsafeUnretRef,&anAutoRelRef,&aStdRef); [line 16]\n NULLIFY(&aStdRef,false); [line 16]\n NULLIFY(&aStrongRef,false); [line 16]\n NULLIFY(&aWeakRef,false); [line 16]\n NULLIFY(&anAutoRelRef,false); [line 16]\n NULLIFY(&anUnsafeUnretRef,false); [line 16]\n " color=yellow style=filled] +1 [label="1: Start main\nFormals: \nLocals: aWeakRef:class A __weak * aStrongRef:class A * anUnsafeUnretRef:class A __unsafe_unretained * anAutoRelRef:class A __autoreleasing * aStdRef:class A * \n DECLARE_LOCALS(&return,&aWeakRef,&aStrongRef,&anUnsafeUnretRef,&anAutoRelRef,&aStdRef); [line 20]\n NULLIFY(&aStdRef,false); [line 20]\n NULLIFY(&aStrongRef,false); [line 20]\n NULLIFY(&aWeakRef,false); [line 20]\n NULLIFY(&anAutoRelRef,false); [line 20]\n NULLIFY(&anUnsafeUnretRef,false); [line 20]\n " color=yellow style=filled] 1 -> 14 ; diff --git a/infer/tests/codetoanalyze/objc/frontend/types/attributes.m b/infer/tests/codetoanalyze/objc/frontend/types/attributes.m index b730c03e1..e72c8431a 100644 --- a/infer/tests/codetoanalyze/objc/frontend/types/attributes.m +++ b/infer/tests/codetoanalyze/objc/frontend/types/attributes.m @@ -1,6 +1,10 @@ /* - * Copyright (c) 2014 - Facebook. - * All rights reserved. +* Copyright (c) 2014 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ #import diff --git a/infer/tests/codetoanalyze/objc/frontend/types/testloop.dot b/infer/tests/codetoanalyze/objc/frontend/types/testloop.dot index f57db662f..188eb2556 100644 --- a/infer/tests/codetoanalyze/objc/frontend/types/testloop.dot +++ b/infer/tests/codetoanalyze/objc/frontend/types/testloop.dot @@ -1,12 +1,12 @@ digraph iCFG { -3 [label="3: Return Stmt \n n$0=*&#GB$__iPhoneVideoAdLayout:struct FBVideoAdLayout [line 46]\n *&return:struct FBVideoAdLayout =n$0 [line 46]\n REMOVE_TEMPS(n$0); [line 46]\n APPLY_ABSTRACTION; [line 46]\n " shape="box"] +3 [label="3: Return Stmt \n n$0=*&#GB$__iPhoneVideoAdLayout:struct FBVideoAdLayout [line 50]\n *&return:struct FBVideoAdLayout =n$0 [line 50]\n REMOVE_TEMPS(n$0); [line 50]\n APPLY_ABSTRACTION; [line 50]\n " shape="box"] 3 -> 2 ; 2 [label="2: Exit FBScrollViewDelegateProxy_layoutToUse \n " color=yellow style=filled] -1 [label="1: Start FBScrollViewDelegateProxy_layoutToUse\nFormals: \nLocals: \n DECLARE_LOCALS(&return); [line 44]\n " color=yellow style=filled] +1 [label="1: Start FBScrollViewDelegateProxy_layoutToUse\nFormals: \nLocals: \n DECLARE_LOCALS(&return); [line 48]\n " color=yellow style=filled] 1 -> 3 ; diff --git a/infer/tests/codetoanalyze/objc/frontend/types/testloop.m b/infer/tests/codetoanalyze/objc/frontend/types/testloop.m index f91ed1125..3e4f46498 100644 --- a/infer/tests/codetoanalyze/objc/frontend/types/testloop.m +++ b/infer/tests/codetoanalyze/objc/frontend/types/testloop.m @@ -1,6 +1,10 @@ /* - * Copyright (c) 2014 - Facebook. - * All rights reserved. +* Copyright (c) 2014 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ #import diff --git a/infer/tests/codetoanalyze/objc/frontend/types/void_call.dot b/infer/tests/codetoanalyze/objc/frontend/types/void_call.dot index 0be650b76..9cfde6bbb 100644 --- a/infer/tests/codetoanalyze/objc/frontend/types/void_call.dot +++ b/infer/tests/codetoanalyze/objc/frontend/types/void_call.dot @@ -1,34 +1,34 @@ digraph iCFG { -24 [label="24: DeclStmt \n *&x:int =1 [line 39]\n " shape="box"] +24 [label="24: DeclStmt \n *&x:int =1 [line 43]\n " shape="box"] 24 -> 23 ; -23 [label="23: Call _fun_foo1 \n n$14=*&x:int [line 40]\n _fun_foo1(n$14:int ) [line 40]\n REMOVE_TEMPS(n$14); [line 40]\n " shape="box"] +23 [label="23: Call _fun_foo1 \n n$14=*&x:int [line 44]\n _fun_foo1(n$14:int ) [line 44]\n REMOVE_TEMPS(n$14); [line 44]\n " shape="box"] 23 -> 22 ; -22 [label="22: BinaryOperatorStmt: Assign \n n$12=*&x:int [line 42]\n n$13=_fun_bar1(n$12:int ) [line 42]\n *&x:int =n$13 [line 42]\n REMOVE_TEMPS(n$12,n$13); [line 42]\n " shape="box"] +22 [label="22: BinaryOperatorStmt: Assign \n n$12=*&x:int [line 46]\n n$13=_fun_bar1(n$12:int ) [line 46]\n *&x:int =n$13 [line 46]\n REMOVE_TEMPS(n$12,n$13); [line 46]\n " shape="box"] 22 -> 21 ; -21 [label="21: DeclStmt \n n$11=_fun___objc_alloc_no_fail(sizeof(class AClass ):class AClass *) [line 44]\n *&o:class AClass *=n$11 [line 44]\n REMOVE_TEMPS(n$11); [line 44]\n " shape="box"] +21 [label="21: DeclStmt \n n$11=_fun___objc_alloc_no_fail(sizeof(class AClass ):class AClass *) [line 48]\n *&o:class AClass *=n$11 [line 48]\n REMOVE_TEMPS(n$11); [line 48]\n " shape="box"] 21 -> 17 ; 21 -> 18 ; -20 [label="20: Message Call: foo: \n n$8=*&o:class AClass * [line 48]\n n$9=*&x:int [line 48]\n _fun_AClass_foo:(n$8:class AClass *,n$9:int ) virtual [line 48]\n REMOVE_TEMPS(n$8,n$9); [line 48]\n " shape="box"] +20 [label="20: Message Call: foo: \n n$8=*&o:class AClass * [line 52]\n n$9=*&x:int [line 52]\n _fun_AClass_foo:(n$8:class AClass *,n$9:int ) virtual [line 52]\n REMOVE_TEMPS(n$8,n$9); [line 52]\n " shape="box"] 20 -> 19 ; -19 [label="19: BinaryOperatorStmt: Assign \n n$6=*&o:class AClass * [line 49]\n n$7=*&x:int [line 49]\n n$5=_fun_AClass_bar:(n$6:class AClass *,n$7:int ) virtual [line 49]\n *&x:int =n$5 [line 49]\n REMOVE_TEMPS(n$5,n$6,n$7); [line 49]\n NULLIFY(&o,false); [line 49]\n NULLIFY(&x,false); [line 49]\n APPLY_ABSTRACTION; [line 49]\n " shape="box"] +19 [label="19: BinaryOperatorStmt: Assign \n n$6=*&o:class AClass * [line 53]\n n$7=*&x:int [line 53]\n n$5=_fun_AClass_bar:(n$6:class AClass *,n$7:int ) virtual [line 53]\n *&x:int =n$5 [line 53]\n REMOVE_TEMPS(n$5,n$6,n$7); [line 53]\n NULLIFY(&o,false); [line 53]\n NULLIFY(&x,false); [line 53]\n APPLY_ABSTRACTION; [line 53]\n " shape="box"] 19 -> 16 ; -18 [label="18: Prune (false branch) \n n$4=*&o:class AClass * [line 46]\n PRUNE((n$4 == 0), false); [line 46]\n REMOVE_TEMPS(n$4); [line 46]\n APPLY_ABSTRACTION; [line 46]\n " shape="invhouse"] +18 [label="18: Prune (false branch) \n n$4=*&o:class AClass * [line 50]\n PRUNE((n$4 == 0), false); [line 50]\n REMOVE_TEMPS(n$4); [line 50]\n APPLY_ABSTRACTION; [line 50]\n " shape="invhouse"] 18 -> 16 ; -17 [label="17: Prune (true branch) \n n$4=*&o:class AClass * [line 46]\n PRUNE((n$4 != 0), true); [line 46]\n REMOVE_TEMPS(n$4); [line 46]\n " shape="invhouse"] +17 [label="17: Prune (true branch) \n n$4=*&o:class AClass * [line 50]\n PRUNE((n$4 != 0), true); [line 50]\n REMOVE_TEMPS(n$4); [line 50]\n " shape="invhouse"] 17 -> 20 ; @@ -36,58 +36,58 @@ digraph iCFG { 16 -> 15 ; -15 [label="15: Return Stmt \n NULLIFY(&o,false); [line 53]\n NULLIFY(&x,false); [line 53]\n *&return:int =0 [line 53]\n APPLY_ABSTRACTION; [line 53]\n " shape="box"] +15 [label="15: Return Stmt \n NULLIFY(&o,false); [line 57]\n NULLIFY(&x,false); [line 57]\n *&return:int =0 [line 57]\n APPLY_ABSTRACTION; [line 57]\n " shape="box"] 15 -> 14 ; 14 [label="14: Exit main \n " color=yellow style=filled] -13 [label="13: Start main\nFormals: \nLocals: x:int o:class AClass * \n DECLARE_LOCALS(&return,&x,&o); [line 37]\n NULLIFY(&o,false); [line 37]\n NULLIFY(&x,false); [line 37]\n " color=yellow style=filled] +13 [label="13: Start main\nFormals: \nLocals: x:int o:class AClass * \n DECLARE_LOCALS(&return,&x,&o); [line 41]\n NULLIFY(&o,false); [line 41]\n NULLIFY(&x,false); [line 41]\n " color=yellow style=filled] 13 -> 24 ; -12 [label="12: Return Stmt \n n$3=*&a:int [line 34]\n *&a:int =(n$3 + 1) [line 34]\n *&return:int =n$3 [line 34]\n REMOVE_TEMPS(n$3); [line 34]\n NULLIFY(&a,false); [line 34]\n APPLY_ABSTRACTION; [line 34]\n " shape="box"] +12 [label="12: Return Stmt \n n$3=*&a:int [line 38]\n *&a:int =(n$3 + 1) [line 38]\n *&return:int =n$3 [line 38]\n REMOVE_TEMPS(n$3); [line 38]\n NULLIFY(&a,false); [line 38]\n APPLY_ABSTRACTION; [line 38]\n " shape="box"] 12 -> 11 ; 11 [label="11: Exit bar1 \n " color=yellow style=filled] -10 [label="10: Start bar1\nFormals: a:int \nLocals: \n DECLARE_LOCALS(&return); [line 32]\n " color=yellow style=filled] +10 [label="10: Start bar1\nFormals: a:int \nLocals: \n DECLARE_LOCALS(&return); [line 36]\n " color=yellow style=filled] 10 -> 12 ; -9 [label="9: UnaryOperator \n n$2=*&a:int [line 29]\n *&a:int =(n$2 + 1) [line 29]\n REMOVE_TEMPS(n$2); [line 29]\n NULLIFY(&a,false); [line 29]\n APPLY_ABSTRACTION; [line 29]\n " shape="box"] +9 [label="9: UnaryOperator \n n$2=*&a:int [line 33]\n *&a:int =(n$2 + 1) [line 33]\n REMOVE_TEMPS(n$2); [line 33]\n NULLIFY(&a,false); [line 33]\n APPLY_ABSTRACTION; [line 33]\n " shape="box"] 9 -> 8 ; 8 [label="8: Exit foo1 \n " color=yellow style=filled] -7 [label="7: Start foo1\nFormals: a:int \nLocals: \n DECLARE_LOCALS(&return); [line 28]\n " color=yellow style=filled] +7 [label="7: Start foo1\nFormals: a:int \nLocals: \n DECLARE_LOCALS(&return); [line 32]\n " color=yellow style=filled] 7 -> 9 ; -6 [label="6: Return Stmt \n n$1=*&a:int [line 21]\n *&a:int =(n$1 + 1) [line 21]\n *&return:int =n$1 [line 21]\n REMOVE_TEMPS(n$1); [line 21]\n NULLIFY(&a,false); [line 21]\n APPLY_ABSTRACTION; [line 21]\n " shape="box"] +6 [label="6: Return Stmt \n n$1=*&a:int [line 25]\n *&a:int =(n$1 + 1) [line 25]\n *&return:int =n$1 [line 25]\n REMOVE_TEMPS(n$1); [line 25]\n NULLIFY(&a,false); [line 25]\n APPLY_ABSTRACTION; [line 25]\n " shape="box"] 6 -> 5 ; 5 [label="5: Exit AClass_bar: \n " color=yellow style=filled] -4 [label="4: Start AClass_bar:\nFormals: self:class AClass * a:int \nLocals: \n DECLARE_LOCALS(&return); [line 20]\n NULLIFY(&self,false); [line 20]\n " color=yellow style=filled] +4 [label="4: Start AClass_bar:\nFormals: self:class AClass * a:int \nLocals: \n DECLARE_LOCALS(&return); [line 24]\n NULLIFY(&self,false); [line 24]\n " color=yellow style=filled] 4 -> 6 ; -3 [label="3: UnaryOperator \n n$0=*&a:int [line 18]\n *&a:int =(n$0 + 1) [line 18]\n REMOVE_TEMPS(n$0); [line 18]\n NULLIFY(&a,false); [line 18]\n APPLY_ABSTRACTION; [line 18]\n " shape="box"] +3 [label="3: UnaryOperator \n n$0=*&a:int [line 22]\n *&a:int =(n$0 + 1) [line 22]\n REMOVE_TEMPS(n$0); [line 22]\n NULLIFY(&a,false); [line 22]\n APPLY_ABSTRACTION; [line 22]\n " shape="box"] 3 -> 2 ; 2 [label="2: Exit AClass_foo: \n " color=yellow style=filled] -1 [label="1: Start AClass_foo:\nFormals: self:class AClass * a:int \nLocals: \n DECLARE_LOCALS(&return); [line 17]\n NULLIFY(&self,false); [line 17]\n " color=yellow style=filled] +1 [label="1: Start AClass_foo:\nFormals: self:class AClass * a:int \nLocals: \n DECLARE_LOCALS(&return); [line 21]\n NULLIFY(&self,false); [line 21]\n " color=yellow style=filled] 1 -> 3 ; diff --git a/infer/tests/codetoanalyze/objc/frontend/types/void_call.m b/infer/tests/codetoanalyze/objc/frontend/types/void_call.m index 18db563f1..bcc3921a1 100644 --- a/infer/tests/codetoanalyze/objc/frontend/types/void_call.m +++ b/infer/tests/codetoanalyze/objc/frontend/types/void_call.m @@ -1,6 +1,10 @@ /* - * Copyright (c) 2014 - Facebook. - * All rights reserved. +* Copyright (c) 2014 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ #import diff --git a/infer/tests/codetoanalyze/objc/frontend/vardecl/aclass.dot b/infer/tests/codetoanalyze/objc/frontend/vardecl/aclass.dot index a2438a41b..de69338c6 100644 --- a/infer/tests/codetoanalyze/objc/frontend/vardecl/aclass.dot +++ b/infer/tests/codetoanalyze/objc/frontend/vardecl/aclass.dot @@ -1,12 +1,12 @@ digraph iCFG { -3 [label="3: Return Stmt \n n$0=*&#GB$aVariable:class NSObject * [line 19]\n *&return:class NSObject *=n$0 [line 19]\n REMOVE_TEMPS(n$0); [line 19]\n APPLY_ABSTRACTION; [line 19]\n " shape="box"] +3 [label="3: Return Stmt \n n$0=*&#GB$aVariable:class NSObject * [line 23]\n *&return:class NSObject *=n$0 [line 23]\n REMOVE_TEMPS(n$0); [line 23]\n APPLY_ABSTRACTION; [line 23]\n " shape="box"] 3 -> 2 ; 2 [label="2: Exit AClass_sharedInstance \n " color=yellow style=filled] -1 [label="1: Start AClass_sharedInstance\nFormals: self:class AClass *\nLocals: \n DECLARE_LOCALS(&return); [line 17]\n NULLIFY(&self,false); [line 17]\n " color=yellow style=filled] +1 [label="1: Start AClass_sharedInstance\nFormals: self:class AClass *\nLocals: \n DECLARE_LOCALS(&return); [line 21]\n NULLIFY(&self,false); [line 21]\n " color=yellow style=filled] 1 -> 3 ; diff --git a/infer/tests/codetoanalyze/objc/frontend/vardecl/aclass.m b/infer/tests/codetoanalyze/objc/frontend/vardecl/aclass.m index 0f1f64302..3d4c9f101 100644 --- a/infer/tests/codetoanalyze/objc/frontend/vardecl/aclass.m +++ b/infer/tests/codetoanalyze/objc/frontend/vardecl/aclass.m @@ -1,6 +1,10 @@ /* - * Copyright (c) 2014 - Facebook. - * All rights reserved. +* Copyright (c) 2014 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ #import diff --git a/infer/tests/codetoanalyze/objc/frontend/vardecl/aclass_2.dot b/infer/tests/codetoanalyze/objc/frontend/vardecl/aclass_2.dot index a2438a41b..de69338c6 100644 --- a/infer/tests/codetoanalyze/objc/frontend/vardecl/aclass_2.dot +++ b/infer/tests/codetoanalyze/objc/frontend/vardecl/aclass_2.dot @@ -1,12 +1,12 @@ digraph iCFG { -3 [label="3: Return Stmt \n n$0=*&#GB$aVariable:class NSObject * [line 19]\n *&return:class NSObject *=n$0 [line 19]\n REMOVE_TEMPS(n$0); [line 19]\n APPLY_ABSTRACTION; [line 19]\n " shape="box"] +3 [label="3: Return Stmt \n n$0=*&#GB$aVariable:class NSObject * [line 23]\n *&return:class NSObject *=n$0 [line 23]\n REMOVE_TEMPS(n$0); [line 23]\n APPLY_ABSTRACTION; [line 23]\n " shape="box"] 3 -> 2 ; 2 [label="2: Exit AClass_sharedInstance \n " color=yellow style=filled] -1 [label="1: Start AClass_sharedInstance\nFormals: self:class AClass *\nLocals: \n DECLARE_LOCALS(&return); [line 17]\n NULLIFY(&self,false); [line 17]\n " color=yellow style=filled] +1 [label="1: Start AClass_sharedInstance\nFormals: self:class AClass *\nLocals: \n DECLARE_LOCALS(&return); [line 21]\n NULLIFY(&self,false); [line 21]\n " color=yellow style=filled] 1 -> 3 ; diff --git a/infer/tests/codetoanalyze/objc/frontend/vardecl/aclass_2.m b/infer/tests/codetoanalyze/objc/frontend/vardecl/aclass_2.m index 2afc1cec4..35d524539 100644 --- a/infer/tests/codetoanalyze/objc/frontend/vardecl/aclass_2.m +++ b/infer/tests/codetoanalyze/objc/frontend/vardecl/aclass_2.m @@ -1,6 +1,10 @@ /* - * Copyright (c) 2014 - Facebook. - * All rights reserved. +* Copyright (c) 2014 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ #import diff --git a/infer/tests/codetoanalyze/objc/frontend/vardecl/initlist.dot b/infer/tests/codetoanalyze/objc/frontend/vardecl/initlist.dot index 25c2263da..96694746c 100644 --- a/infer/tests/codetoanalyze/objc/frontend/vardecl/initlist.dot +++ b/infer/tests/codetoanalyze/objc/frontend/vardecl/initlist.dot @@ -1,31 +1,31 @@ digraph iCFG { -8 [label="8: DeclStmt \n n$8=_fun___objc_alloc_no_fail(sizeof(class C ):class C *) [line 18]\n *&c1:class C *=n$8 [line 18]\n REMOVE_TEMPS(n$8); [line 18]\n " shape="box"] +8 [label="8: DeclStmt \n n$8=_fun___objc_alloc_no_fail(sizeof(class C ):class C *) [line 22]\n *&c1:class C *=n$8 [line 22]\n REMOVE_TEMPS(n$8); [line 22]\n " shape="box"] 8 -> 7 ; -7 [label="7: DeclStmt \n n$6=_fun___objc_alloc_no_fail(sizeof(class C ):class C *) [line 19]\n *&c2:class C *=n$6 [line 19]\n REMOVE_TEMPS(n$6); [line 19]\n " shape="box"] +7 [label="7: DeclStmt \n n$6=_fun___objc_alloc_no_fail(sizeof(class C ):class C *) [line 23]\n *&c2:class C *=n$6 [line 23]\n REMOVE_TEMPS(n$6); [line 23]\n " shape="box"] 7 -> 6 ; -6 [label="6: InitListExp \n n$2=*&c1:class C * [line 20]\n n$1=_fun_C_init(n$2:class C *) virtual [line 20]\n n$3=*&c1:class C * [line 20]\n n$4=*&c2:class C * [line 20]\n *&a[0]:C *=n$1 [line 20]\n _fun___objc_retain(n$3:C *) [line 20]\n *&a[1]:C *=n$3 [line 20]\n _fun___objc_retain(n$4:C *) [line 20]\n *&a[2]:C *=n$4 [line 20]\n REMOVE_TEMPS(n$1,n$2,n$3,n$4); [line 20]\n NULLIFY(&c1,false); [line 20]\n NULLIFY(&c2,false); [line 20]\n APPLY_ABSTRACTION; [line 20]\n " shape="box"] +6 [label="6: InitListExp \n n$2=*&c1:class C * [line 24]\n n$1=_fun_C_init(n$2:class C *) virtual [line 24]\n n$3=*&c1:class C * [line 24]\n n$4=*&c2:class C * [line 24]\n *&a[0]:C *=n$1 [line 24]\n _fun___objc_retain(n$3:C *) [line 24]\n *&a[1]:C *=n$3 [line 24]\n _fun___objc_retain(n$4:C *) [line 24]\n *&a[2]:C *=n$4 [line 24]\n REMOVE_TEMPS(n$1,n$2,n$3,n$4); [line 24]\n NULLIFY(&c1,false); [line 24]\n NULLIFY(&c2,false); [line 24]\n APPLY_ABSTRACTION; [line 24]\n " shape="box"] 6 -> 5 ; 5 [label="5: Exit test \n " color=yellow style=filled] -4 [label="4: Start test\nFormals: \nLocals: c1:class C * c2:class C * a:C *[3] \n DECLARE_LOCALS(&return,&c1,&c2,&a); [line 17]\n NULLIFY(&a,false); [line 17]\n NULLIFY(&c1,false); [line 17]\n NULLIFY(&c2,false); [line 17]\n " color=yellow style=filled] +4 [label="4: Start test\nFormals: \nLocals: c1:class C * c2:class C * a:C *[3] \n DECLARE_LOCALS(&return,&c1,&c2,&a); [line 21]\n NULLIFY(&a,false); [line 21]\n NULLIFY(&c1,false); [line 21]\n NULLIFY(&c2,false); [line 21]\n " color=yellow style=filled] 4 -> 8 ; -3 [label="3: InitListExp \n n$0=*&z:int [line 10]\n *&a[0][0]:int =(n$0 + 1) [line 10]\n *&a[0][1]:int =2 [line 10]\n *&a[0][2]:int =3 [line 10]\n *&a[1][0]:int =5 [line 10]\n *&a[1][1]:int =6 [line 10]\n *&a[1][2]:int =7 [line 10]\n REMOVE_TEMPS(n$0); [line 10]\n NULLIFY(&z,false); [line 10]\n APPLY_ABSTRACTION; [line 10]\n " shape="box"] +3 [label="3: InitListExp \n n$0=*&z:int [line 14]\n *&a[0][0]:int =(n$0 + 1) [line 14]\n *&a[0][1]:int =2 [line 14]\n *&a[0][2]:int =3 [line 14]\n *&a[1][0]:int =5 [line 14]\n *&a[1][1]:int =6 [line 14]\n *&a[1][2]:int =7 [line 14]\n REMOVE_TEMPS(n$0); [line 14]\n NULLIFY(&z,false); [line 14]\n APPLY_ABSTRACTION; [line 14]\n " shape="box"] 3 -> 2 ; 2 [label="2: Exit main \n " color=yellow style=filled] -1 [label="1: Start main\nFormals: \nLocals: z:int a:int [2][3] \n DECLARE_LOCALS(&return,&z,&a); [line 8]\n NULLIFY(&a,false); [line 8]\n " color=yellow style=filled] +1 [label="1: Start main\nFormals: \nLocals: z:int a:int [2][3] \n DECLARE_LOCALS(&return,&z,&a); [line 12]\n NULLIFY(&a,false); [line 12]\n " color=yellow style=filled] 1 -> 3 ; diff --git a/infer/tests/codetoanalyze/objc/frontend/vardecl/initlist.m b/infer/tests/codetoanalyze/objc/frontend/vardecl/initlist.m index d0b22f6aa..e1847f5f0 100644 --- a/infer/tests/codetoanalyze/objc/frontend/vardecl/initlist.m +++ b/infer/tests/codetoanalyze/objc/frontend/vardecl/initlist.m @@ -1,6 +1,10 @@ /* - * Copyright (c) 2014 - Facebook. - * All rights reserved. +* Copyright (c) 2014 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ #import diff --git a/infer/tests/codetoanalyze/objc/frontend/vardecl/last_af.dot b/infer/tests/codetoanalyze/objc/frontend/vardecl/last_af.dot index 363517436..8da05cbd9 100644 --- a/infer/tests/codetoanalyze/objc/frontend/vardecl/last_af.dot +++ b/infer/tests/codetoanalyze/objc/frontend/vardecl/last_af.dot @@ -1,16 +1,16 @@ digraph iCFG { -4 [label="4: DeclStmt \n *&a:int =0 [line 7]\n " shape="box"] +4 [label="4: DeclStmt \n *&a:int =0 [line 11]\n " shape="box"] 4 -> 3 ; -3 [label="3: DeclStmt \n n$0=*&a:int [line 7]\n *&b:int =(n$0 + 2) [line 7]\n REMOVE_TEMPS(n$0); [line 7]\n NULLIFY(&a,false); [line 7]\n NULLIFY(&b,false); [line 7]\n APPLY_ABSTRACTION; [line 7]\n " shape="box"] +3 [label="3: DeclStmt \n n$0=*&a:int [line 11]\n *&b:int =(n$0 + 2) [line 11]\n REMOVE_TEMPS(n$0); [line 11]\n NULLIFY(&a,false); [line 11]\n NULLIFY(&b,false); [line 11]\n APPLY_ABSTRACTION; [line 11]\n " shape="box"] 3 -> 2 ; 2 [label="2: Exit main \n " color=yellow style=filled] -1 [label="1: Start main\nFormals: \nLocals: a:int b:int \n DECLARE_LOCALS(&return,&a,&b); [line 6]\n NULLIFY(&a,false); [line 6]\n NULLIFY(&b,false); [line 6]\n " color=yellow style=filled] +1 [label="1: Start main\nFormals: \nLocals: a:int b:int \n DECLARE_LOCALS(&return,&a,&b); [line 10]\n NULLIFY(&a,false); [line 10]\n NULLIFY(&b,false); [line 10]\n " color=yellow style=filled] 1 -> 4 ; diff --git a/infer/tests/codetoanalyze/objc/frontend/vardecl/last_af.m b/infer/tests/codetoanalyze/objc/frontend/vardecl/last_af.m index f02aef637..e1b5cf73d 100644 --- a/infer/tests/codetoanalyze/objc/frontend/vardecl/last_af.m +++ b/infer/tests/codetoanalyze/objc/frontend/vardecl/last_af.m @@ -1,6 +1,10 @@ /* - * Copyright (c) 2014 - Facebook. - * All rights reserved. +* Copyright (c) 2014 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ int main() { diff --git a/infer/tests/codetoanalyze/objc/warnings/ParameterNotNullableExample.m b/infer/tests/codetoanalyze/objc/warnings/ParameterNotNullableExample.m index 2f6f62e07..23bb3c2f2 100644 --- a/infer/tests/codetoanalyze/objc/warnings/ParameterNotNullableExample.m +++ b/infer/tests/codetoanalyze/objc/warnings/ParameterNotNullableExample.m @@ -1,6 +1,10 @@ /* -* Copyright (c) 2015- Facebook. +* Copyright (c) 2015 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ #import diff --git a/infer/tests/codetoanalyze/objcpp/frontend/funcoverloading/af_test.dot b/infer/tests/codetoanalyze/objcpp/frontend/funcoverloading/af_test.dot index 06a30faf3..c033100aa 100644 --- a/infer/tests/codetoanalyze/objcpp/frontend/funcoverloading/af_test.dot +++ b/infer/tests/codetoanalyze/objcpp/frontend/funcoverloading/af_test.dot @@ -1,23 +1,23 @@ digraph iCFG { -6 [label="6: Return Stmt \n n$0=*&v:int [line 15]\n *&return:int =n$0 [line 15]\n REMOVE_TEMPS(n$0); [line 15]\n NULLIFY(&v,false); [line 15]\n APPLY_ABSTRACTION; [line 15]\n " shape="box"] +6 [label="6: Return Stmt \n n$0=*&v:int [line 19]\n *&return:int =n$0 [line 19]\n REMOVE_TEMPS(n$0); [line 19]\n NULLIFY(&v,false); [line 19]\n APPLY_ABSTRACTION; [line 19]\n " shape="box"] 6 -> 5 ; 5 [label="5: Exit POPSelectValueType \n " color=yellow style=filled] -4 [label="4: Start POPSelectValueType\nFormals: v:int \nLocals: \n DECLARE_LOCALS(&return); [line 13]\n " color=yellow style=filled] +4 [label="4: Start POPSelectValueType\nFormals: v:int \nLocals: \n DECLARE_LOCALS(&return); [line 17]\n " color=yellow style=filled] 4 -> 6 ; -3 [label="3: Return Stmt \n *&return:int =1 [line 10]\n APPLY_ABSTRACTION; [line 10]\n " shape="box"] +3 [label="3: Return Stmt \n *&return:int =1 [line 14]\n APPLY_ABSTRACTION; [line 14]\n " shape="box"] 3 -> 2 ; 2 [label="2: Exit POPSelectValueType \n " color=yellow style=filled] -1 [label="1: Start POPSelectValueType\nFormals: obj:struct objc_object *\nLocals: \n DECLARE_LOCALS(&return); [line 8]\n NULLIFY(&obj,false); [line 8]\n " color=yellow style=filled] +1 [label="1: Start POPSelectValueType\nFormals: obj:struct objc_object *\nLocals: \n DECLARE_LOCALS(&return); [line 12]\n NULLIFY(&obj,false); [line 12]\n " color=yellow style=filled] 1 -> 3 ; diff --git a/infer/tests/codetoanalyze/objcpp/frontend/funcoverloading/af_test.mm b/infer/tests/codetoanalyze/objcpp/frontend/funcoverloading/af_test.mm index 9354baf91..6fde482ba 100644 --- a/infer/tests/codetoanalyze/objcpp/frontend/funcoverloading/af_test.mm +++ b/infer/tests/codetoanalyze/objcpp/frontend/funcoverloading/af_test.mm @@ -1,6 +1,10 @@ /* - * Copyright (c) 2014 - Facebook. - * All rights reserved. +* Copyright (c) 2014 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ #import diff --git a/infer/tests/endtoend/c/AngelismTest.java b/infer/tests/endtoend/c/AngelismTest.java index c504e7471..60390c902 100644 --- a/infer/tests/endtoend/c/AngelismTest.java +++ b/infer/tests/endtoend/c/AngelismTest.java @@ -1,6 +1,10 @@ /* - * Copyright (c) 2013- Facebook. - * All rights reserved. +* Copyright (c) 2013 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ package endtoend.c; diff --git a/infer/tests/endtoend/c/ArrayOutOfBoundsTest.java b/infer/tests/endtoend/c/ArrayOutOfBoundsTest.java index e5ad1e5e1..865f4f7f8 100644 --- a/infer/tests/endtoend/c/ArrayOutOfBoundsTest.java +++ b/infer/tests/endtoend/c/ArrayOutOfBoundsTest.java @@ -1,6 +1,10 @@ /* - * Copyright (c) 2013- Facebook. - * All rights reserved. +* Copyright (c) 2013 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ package endtoend.c; diff --git a/infer/tests/endtoend/c/AssertTest.java b/infer/tests/endtoend/c/AssertTest.java index baf913b49..78f80958c 100644 --- a/infer/tests/endtoend/c/AssertTest.java +++ b/infer/tests/endtoend/c/AssertTest.java @@ -1,6 +1,10 @@ /* - * Copyright (c) 2013- Facebook. - * All rights reserved. +* Copyright (c) 2013 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ package endtoend.c; diff --git a/infer/tests/endtoend/c/AssertionFailureTest.java b/infer/tests/endtoend/c/AssertionFailureTest.java index 38b4fc6cc..c3abc1f68 100644 --- a/infer/tests/endtoend/c/AssertionFailureTest.java +++ b/infer/tests/endtoend/c/AssertionFailureTest.java @@ -1,6 +1,10 @@ /* -* Copyright (c) 2013- Facebook. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ package endtoend.c; diff --git a/infer/tests/endtoend/c/DivideByZeroTest.java b/infer/tests/endtoend/c/DivideByZeroTest.java index 2158a071f..6aec42027 100644 --- a/infer/tests/endtoend/c/DivideByZeroTest.java +++ b/infer/tests/endtoend/c/DivideByZeroTest.java @@ -1,6 +1,10 @@ /* - * Copyright (c) 2013- Facebook. - * All rights reserved. +* Copyright (c) 2013 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ package endtoend.c; diff --git a/infer/tests/endtoend/c/InitListExprTest.java b/infer/tests/endtoend/c/InitListExprTest.java index 81accb0ff..bff535e89 100644 --- a/infer/tests/endtoend/c/InitListExprTest.java +++ b/infer/tests/endtoend/c/InitListExprTest.java @@ -1,6 +1,10 @@ /* - * Copyright (c) 2013- Facebook. - * All rights reserved. +* Copyright (c) 2013 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ package endtoend.c; diff --git a/infer/tests/endtoend/c/ListsTest.java b/infer/tests/endtoend/c/ListsTest.java index aea366149..11cd71542 100644 --- a/infer/tests/endtoend/c/ListsTest.java +++ b/infer/tests/endtoend/c/ListsTest.java @@ -1,6 +1,10 @@ /* - * Copyright (c) 2013- Facebook. - * All rights reserved. +* Copyright (c) 2013 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ package endtoend.c; diff --git a/infer/tests/endtoend/c/LocalVarsTest.java b/infer/tests/endtoend/c/LocalVarsTest.java index d3a7c02e6..d9f0d123d 100644 --- a/infer/tests/endtoend/c/LocalVarsTest.java +++ b/infer/tests/endtoend/c/LocalVarsTest.java @@ -1,6 +1,10 @@ /* - * Copyright (c) 2013- Facebook. - * All rights reserved. +* Copyright (c) 2013 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ package endtoend.c; diff --git a/infer/tests/endtoend/c/MemoryLeakTest.java b/infer/tests/endtoend/c/MemoryLeakTest.java index 9711a2ff4..e59562965 100644 --- a/infer/tests/endtoend/c/MemoryLeakTest.java +++ b/infer/tests/endtoend/c/MemoryLeakTest.java @@ -1,6 +1,10 @@ /* - * Copyright (c) 2015- Facebook. - * All rights reserved. +* Copyright (c) 2015 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ package endtoend.c; diff --git a/infer/tests/endtoend/c/NullDereferenceTest.java b/infer/tests/endtoend/c/NullDereferenceTest.java index 2463c2ce8..5998f2de8 100644 --- a/infer/tests/endtoend/c/NullDereferenceTest.java +++ b/infer/tests/endtoend/c/NullDereferenceTest.java @@ -1,6 +1,10 @@ /* - * Copyright (c) 2013- Facebook. - * All rights reserved. +* Copyright (c) 2013 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ package endtoend.c; @@ -61,7 +65,7 @@ public class NullDereferenceTest { @Test public void whenInferRunsOnSimpleNpe_interprocThenCorrectLineIsReported() throws InterruptedException, IOException, InferException { - int[] lines = {16, 30}; + int[] lines = {20, 34}; assertThat( "Results should contain null pointer dereference error", inferResults, diff --git a/infer/tests/endtoend/c/NullDereferenceTest2.java b/infer/tests/endtoend/c/NullDereferenceTest2.java index 80541d79e..6795a88a9 100644 --- a/infer/tests/endtoend/c/NullDereferenceTest2.java +++ b/infer/tests/endtoend/c/NullDereferenceTest2.java @@ -1,6 +1,10 @@ /* - * Copyright (c) 2013- Facebook. - * All rights reserved. +* Copyright (c) 2013 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ package endtoend.c; diff --git a/infer/tests/endtoend/c/ResourceLeakTest.java b/infer/tests/endtoend/c/ResourceLeakTest.java index 99865f088..6e5b2945c 100644 --- a/infer/tests/endtoend/c/ResourceLeakTest.java +++ b/infer/tests/endtoend/c/ResourceLeakTest.java @@ -1,6 +1,10 @@ /* - * Copyright (c) 2013- Facebook. - * All rights reserved. +* Copyright (c) 2013 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ package endtoend.c; diff --git a/infer/tests/endtoend/java/checkers/ImmutableCastTest.java b/infer/tests/endtoend/java/checkers/ImmutableCastTest.java index b22df1266..e5e2413ad 100644 --- a/infer/tests/endtoend/java/checkers/ImmutableCastTest.java +++ b/infer/tests/endtoend/java/checkers/ImmutableCastTest.java @@ -1,6 +1,10 @@ /* -* Copyright (c) 2013- Facebook. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ package endtoend.java.checkers; diff --git a/infer/tests/endtoend/java/checkers/PrintfArgsCheckerTest.java b/infer/tests/endtoend/java/checkers/PrintfArgsCheckerTest.java index c3fd38e0e..08a9403de 100644 --- a/infer/tests/endtoend/java/checkers/PrintfArgsCheckerTest.java +++ b/infer/tests/endtoend/java/checkers/PrintfArgsCheckerTest.java @@ -1,6 +1,10 @@ /* -* Copyright (c) 2013- Facebook. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ package endtoend.java.checkers; diff --git a/infer/tests/endtoend/java/comparison/ArrayIndexOutOfBoundsExceptionTest.java b/infer/tests/endtoend/java/comparison/ArrayIndexOutOfBoundsExceptionTest.java index 08db1929d..7c16903ac 100644 --- a/infer/tests/endtoend/java/comparison/ArrayIndexOutOfBoundsExceptionTest.java +++ b/infer/tests/endtoend/java/comparison/ArrayIndexOutOfBoundsExceptionTest.java @@ -1,6 +1,10 @@ /* -* Copyright (c) 2015-present Facebook. +* Copyright (c) 2015 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ diff --git a/infer/tests/endtoend/java/comparison/ClassCastExceptionTest.java b/infer/tests/endtoend/java/comparison/ClassCastExceptionTest.java index e1f520266..a6aee38c8 100644 --- a/infer/tests/endtoend/java/comparison/ClassCastExceptionTest.java +++ b/infer/tests/endtoend/java/comparison/ClassCastExceptionTest.java @@ -1,6 +1,10 @@ /* -* Copyright (c) 2015-present Facebook. +* Copyright (c) 2015 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ package endtoend.java.comparison; diff --git a/infer/tests/endtoend/java/comparison/NullPointerExceptionTest.java b/infer/tests/endtoend/java/comparison/NullPointerExceptionTest.java index 2768ce3cc..4ee2d645a 100644 --- a/infer/tests/endtoend/java/comparison/NullPointerExceptionTest.java +++ b/infer/tests/endtoend/java/comparison/NullPointerExceptionTest.java @@ -1,6 +1,10 @@ /* -* Copyright (c) 2015-present Facebook. +* Copyright (c) 2015 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ diff --git a/infer/tests/endtoend/java/eradicate/ActivityFieldNotInitializedTest.java b/infer/tests/endtoend/java/eradicate/ActivityFieldNotInitializedTest.java index 25d082e0f..7225a218c 100644 --- a/infer/tests/endtoend/java/eradicate/ActivityFieldNotInitializedTest.java +++ b/infer/tests/endtoend/java/eradicate/ActivityFieldNotInitializedTest.java @@ -1,5 +1,10 @@ /* - * Copyright 2014-present Facebook, Inc. +* Copyright (c) 2014 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ package endtoend.java.eradicate; diff --git a/infer/tests/endtoend/java/eradicate/FieldNotInitializedTest.java b/infer/tests/endtoend/java/eradicate/FieldNotInitializedTest.java index b1aadc0f3..e1c02c175 100644 --- a/infer/tests/endtoend/java/eradicate/FieldNotInitializedTest.java +++ b/infer/tests/endtoend/java/eradicate/FieldNotInitializedTest.java @@ -1,6 +1,10 @@ /* -* Copyright (c) 2013- Facebook. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ package endtoend.java.eradicate; diff --git a/infer/tests/endtoend/java/eradicate/FieldNotNullableTest.java b/infer/tests/endtoend/java/eradicate/FieldNotNullableTest.java index da032111a..ca79986ae 100644 --- a/infer/tests/endtoend/java/eradicate/FieldNotNullableTest.java +++ b/infer/tests/endtoend/java/eradicate/FieldNotNullableTest.java @@ -1,6 +1,10 @@ /* -* Copyright (c) 2013- Facebook. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ package endtoend.java.eradicate; diff --git a/infer/tests/endtoend/java/eradicate/InconsistentSubclassAnnotationTest.java b/infer/tests/endtoend/java/eradicate/InconsistentSubclassAnnotationTest.java index 304366512..43e98a219 100644 --- a/infer/tests/endtoend/java/eradicate/InconsistentSubclassAnnotationTest.java +++ b/infer/tests/endtoend/java/eradicate/InconsistentSubclassAnnotationTest.java @@ -1,6 +1,10 @@ /* -* Copyright (c) 2013- Facebook. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ package endtoend.java.eradicate; diff --git a/infer/tests/endtoend/java/eradicate/LibraryCallsTest.java b/infer/tests/endtoend/java/eradicate/LibraryCallsTest.java index 9ece80e3d..18c450f72 100644 --- a/infer/tests/endtoend/java/eradicate/LibraryCallsTest.java +++ b/infer/tests/endtoend/java/eradicate/LibraryCallsTest.java @@ -1,5 +1,10 @@ /* - * Copyright 2013-present Facebook, Inc. +* Copyright (c) 2013 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ package endtoend.java.eradicate; diff --git a/infer/tests/endtoend/java/eradicate/NullFieldAccessTest.java b/infer/tests/endtoend/java/eradicate/NullFieldAccessTest.java index bb82de24d..9827ae90e 100644 --- a/infer/tests/endtoend/java/eradicate/NullFieldAccessTest.java +++ b/infer/tests/endtoend/java/eradicate/NullFieldAccessTest.java @@ -1,6 +1,10 @@ /* -* Copyright (c) 2013- Facebook. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ package endtoend.java.eradicate; diff --git a/infer/tests/endtoend/java/eradicate/NullMethodCallTest.java b/infer/tests/endtoend/java/eradicate/NullMethodCallTest.java index 8a4e9b7a4..72c320488 100644 --- a/infer/tests/endtoend/java/eradicate/NullMethodCallTest.java +++ b/infer/tests/endtoend/java/eradicate/NullMethodCallTest.java @@ -1,6 +1,10 @@ /* -* Copyright (c) 2013- Facebook. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ package endtoend.java.eradicate; diff --git a/infer/tests/endtoend/java/eradicate/ParameterNotNullableTest.java b/infer/tests/endtoend/java/eradicate/ParameterNotNullableTest.java index c2f24bc1c..aaedc9264 100644 --- a/infer/tests/endtoend/java/eradicate/ParameterNotNullableTest.java +++ b/infer/tests/endtoend/java/eradicate/ParameterNotNullableTest.java @@ -1,6 +1,10 @@ /* -* Copyright (c) 2013- Facebook. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ package endtoend.java.eradicate; diff --git a/infer/tests/endtoend/java/eradicate/ReturnNotNullableTest.java b/infer/tests/endtoend/java/eradicate/ReturnNotNullableTest.java index afa5c202a..238c2859f 100644 --- a/infer/tests/endtoend/java/eradicate/ReturnNotNullableTest.java +++ b/infer/tests/endtoend/java/eradicate/ReturnNotNullableTest.java @@ -1,6 +1,10 @@ /* -* Copyright (c) 2013- Facebook. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ package endtoend.java.eradicate; diff --git a/infer/tests/endtoend/java/eradicate/SuppressedFieldNotInitializedTest.java b/infer/tests/endtoend/java/eradicate/SuppressedFieldNotInitializedTest.java index c34e280b7..27b364a41 100644 --- a/infer/tests/endtoend/java/eradicate/SuppressedFieldNotInitializedTest.java +++ b/infer/tests/endtoend/java/eradicate/SuppressedFieldNotInitializedTest.java @@ -1,5 +1,10 @@ /* - * Copyright 2013-present Facebook, Inc. +* Copyright (c) 2013 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ package endtoend.java.eradicate; diff --git a/infer/tests/endtoend/java/harness/CallbackTest.java b/infer/tests/endtoend/java/harness/CallbackTest.java index df7b6b054..7fa18f733 100644 --- a/infer/tests/endtoend/java/harness/CallbackTest.java +++ b/infer/tests/endtoend/java/harness/CallbackTest.java @@ -1,6 +1,10 @@ /* -* Copyright (c) 2013- Facebook. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ package endtoend.java.harness; diff --git a/infer/tests/endtoend/java/harness/FindViewByIdTest.java b/infer/tests/endtoend/java/harness/FindViewByIdTest.java index d8dd4156d..9ab0cc0fb 100644 --- a/infer/tests/endtoend/java/harness/FindViewByIdTest.java +++ b/infer/tests/endtoend/java/harness/FindViewByIdTest.java @@ -1,6 +1,10 @@ /* -* Copyright (c) 2013- Facebook. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ package endtoend.java.harness; diff --git a/infer/tests/endtoend/java/harness/InhabitTest.java b/infer/tests/endtoend/java/harness/InhabitTest.java index 1e9e6ffe7..d60274b5f 100644 --- a/infer/tests/endtoend/java/harness/InhabitTest.java +++ b/infer/tests/endtoend/java/harness/InhabitTest.java @@ -1,6 +1,10 @@ /* -* Copyright (c) 2013- Facebook. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ package endtoend.java.harness; diff --git a/infer/tests/endtoend/java/harness/LifecycleTest.java b/infer/tests/endtoend/java/harness/LifecycleTest.java index 7171b9142..e63f21839 100644 --- a/infer/tests/endtoend/java/harness/LifecycleTest.java +++ b/infer/tests/endtoend/java/harness/LifecycleTest.java @@ -1,6 +1,10 @@ /* -* Copyright (c) 2013- Facebook. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ package endtoend.java.harness; diff --git a/infer/tests/endtoend/java/harness/SuperclassTest.java b/infer/tests/endtoend/java/harness/SuperclassTest.java index 1e6b93171..18b4f8152 100644 --- a/infer/tests/endtoend/java/harness/SuperclassTest.java +++ b/infer/tests/endtoend/java/harness/SuperclassTest.java @@ -1,6 +1,10 @@ /* -* Copyright (c) 2013- Facebook. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ package endtoend.java.harness; diff --git a/infer/tests/endtoend/java/infer/AnalysisStopsTest.java b/infer/tests/endtoend/java/infer/AnalysisStopsTest.java index 1702ec36b..e945b5035 100644 --- a/infer/tests/endtoend/java/infer/AnalysisStopsTest.java +++ b/infer/tests/endtoend/java/infer/AnalysisStopsTest.java @@ -1,6 +1,10 @@ /* - * Copyright (c) 2013- Facebook. - * All rights reserved. +* Copyright (c) 2013 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ package endtoend.java.infer; diff --git a/infer/tests/endtoend/java/infer/ArrayOutOfBoundsTest.java b/infer/tests/endtoend/java/infer/ArrayOutOfBoundsTest.java index bbb78c9fd..ddf48b29d 100644 --- a/infer/tests/endtoend/java/infer/ArrayOutOfBoundsTest.java +++ b/infer/tests/endtoend/java/infer/ArrayOutOfBoundsTest.java @@ -1,6 +1,10 @@ /* -* Copyright (c) 2013- Facebook. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ package endtoend.java.infer; diff --git a/infer/tests/endtoend/java/infer/AutoGeneratedTest.java b/infer/tests/endtoend/java/infer/AutoGeneratedTest.java index 661df57d9..3cd37ee0f 100644 --- a/infer/tests/endtoend/java/infer/AutoGeneratedTest.java +++ b/infer/tests/endtoend/java/infer/AutoGeneratedTest.java @@ -1,6 +1,10 @@ /* - * Copyright (c) 2015- Facebook. - * All rights reserved. +* Copyright (c) 2015 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ package endtoend.java.infer; diff --git a/infer/tests/endtoend/java/infer/BuiltinsTest.java b/infer/tests/endtoend/java/infer/BuiltinsTest.java index e7f07a619..fb484994d 100644 --- a/infer/tests/endtoend/java/infer/BuiltinsTest.java +++ b/infer/tests/endtoend/java/infer/BuiltinsTest.java @@ -1,6 +1,10 @@ /* - * Copyright (c) 2013- Facebook. - * All rights reserved. +* Copyright (c) 2013 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ package endtoend.java.infer; diff --git a/infer/tests/endtoend/java/infer/ClassCastExceptionsTest.java b/infer/tests/endtoend/java/infer/ClassCastExceptionsTest.java index 328d88215..2894cccfc 100644 --- a/infer/tests/endtoend/java/infer/ClassCastExceptionsTest.java +++ b/infer/tests/endtoend/java/infer/ClassCastExceptionsTest.java @@ -1,6 +1,10 @@ /* -* Copyright (c) 2013- Facebook. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ package endtoend.java.infer; diff --git a/infer/tests/endtoend/java/infer/CloseableAsResourceTest.java b/infer/tests/endtoend/java/infer/CloseableAsResourceTest.java index 77988fd17..3a4c8a2bb 100644 --- a/infer/tests/endtoend/java/infer/CloseableAsResourceTest.java +++ b/infer/tests/endtoend/java/infer/CloseableAsResourceTest.java @@ -1,6 +1,10 @@ /* -* Copyright (c) 2015-present Facebook. +* Copyright (c) 2015 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ package endtoend.java.infer; diff --git a/infer/tests/endtoend/java/infer/CursorLeaksTest.java b/infer/tests/endtoend/java/infer/CursorLeaksTest.java index 7c24f6220..0907f95aa 100644 --- a/infer/tests/endtoend/java/infer/CursorLeaksTest.java +++ b/infer/tests/endtoend/java/infer/CursorLeaksTest.java @@ -1,6 +1,10 @@ /* -* Copyright (c) 2013- Facebook. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ package endtoend.java.infer; diff --git a/infer/tests/endtoend/java/infer/DivideByZeroTest.java b/infer/tests/endtoend/java/infer/DivideByZeroTest.java index ef6a6280e..fa3554569 100644 --- a/infer/tests/endtoend/java/infer/DivideByZeroTest.java +++ b/infer/tests/endtoend/java/infer/DivideByZeroTest.java @@ -1,6 +1,10 @@ /* -* Copyright (c) 2013- Facebook. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ package endtoend.java.infer; @@ -76,7 +80,7 @@ public class DivideByZeroTest { @Test public void whenInferRunsOnDivideByZeroThenTheLineNumbersAreReportedCorr() throws InterruptedException, IOException, InferException { - int[] lines = {24}; + int[] lines = {28}; assertThat( "Result should contain correct line numbers.", inferResults, diff --git a/infer/tests/endtoend/java/infer/FilterInputStreamLeaksTest.java b/infer/tests/endtoend/java/infer/FilterInputStreamLeaksTest.java index 973d55e60..0e5c0193b 100644 --- a/infer/tests/endtoend/java/infer/FilterInputStreamLeaksTest.java +++ b/infer/tests/endtoend/java/infer/FilterInputStreamLeaksTest.java @@ -1,6 +1,10 @@ /* -* Copyright (c) 2013- Facebook. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ //Class to tests resource leaks on the class FilterInputStream and its subclasses package endtoend.java.infer; diff --git a/infer/tests/endtoend/java/infer/FilterOutputStreamLeaksTest.java b/infer/tests/endtoend/java/infer/FilterOutputStreamLeaksTest.java index 39dc9b539..7204df0b7 100644 --- a/infer/tests/endtoend/java/infer/FilterOutputStreamLeaksTest.java +++ b/infer/tests/endtoend/java/infer/FilterOutputStreamLeaksTest.java @@ -1,6 +1,10 @@ /* -* Copyright (c) 2013- Facebook. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ //Class to tests resource leaks on the class FilterOutputStream and its subclasses package endtoend.java.infer; diff --git a/infer/tests/endtoend/java/infer/HashMapModelTest.java b/infer/tests/endtoend/java/infer/HashMapModelTest.java index 72d42bba7..da2df724e 100644 --- a/infer/tests/endtoend/java/infer/HashMapModelTest.java +++ b/infer/tests/endtoend/java/infer/HashMapModelTest.java @@ -1,6 +1,10 @@ /* - * Copyright (c) 2013- Facebook. - * All rights reserved. +* Copyright (c) 2013 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ package endtoend.java.infer; diff --git a/infer/tests/endtoend/java/infer/IntegerClassTest.java b/infer/tests/endtoend/java/infer/IntegerClassTest.java index d369e1051..c9b6188c7 100644 --- a/infer/tests/endtoend/java/infer/IntegerClassTest.java +++ b/infer/tests/endtoend/java/infer/IntegerClassTest.java @@ -1,6 +1,10 @@ /* -* Copyright (c) 2015-present Facebook. +* Copyright (c) 2015 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ package endtoend.java.infer; diff --git a/infer/tests/endtoend/java/infer/JunitAssertionTest.java b/infer/tests/endtoend/java/infer/JunitAssertionTest.java index 0b008994f..b144effbc 100644 --- a/infer/tests/endtoend/java/infer/JunitAssertionTest.java +++ b/infer/tests/endtoend/java/infer/JunitAssertionTest.java @@ -1,3 +1,12 @@ +/* +* Copyright (c) 2015 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. +*/ + package endtoend.java.infer; import static org.hamcrest.MatcherAssert.assertThat; diff --git a/infer/tests/endtoend/java/infer/NullPointerExceptionTest.java b/infer/tests/endtoend/java/infer/NullPointerExceptionTest.java index b49b1036f..8e74912e0 100644 --- a/infer/tests/endtoend/java/infer/NullPointerExceptionTest.java +++ b/infer/tests/endtoend/java/infer/NullPointerExceptionTest.java @@ -1,6 +1,10 @@ /* - * Copyright (c) 2013- Facebook. - * All rights reserved. +* Copyright (c) 2013 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ package endtoend.java.infer; diff --git a/infer/tests/endtoend/java/infer/ReaderLeaksTest.java b/infer/tests/endtoend/java/infer/ReaderLeaksTest.java index 861c9506e..e29a82d82 100644 --- a/infer/tests/endtoend/java/infer/ReaderLeaksTest.java +++ b/infer/tests/endtoend/java/infer/ReaderLeaksTest.java @@ -1,6 +1,10 @@ /* -* Copyright (c) 2013- Facebook. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ //Class to tests resource leaks on the class FilterOutputStream and its subclasses package endtoend.java.infer; diff --git a/infer/tests/endtoend/java/infer/ResourceLeaksTest.java b/infer/tests/endtoend/java/infer/ResourceLeaksTest.java index 4067679d1..7536df28f 100644 --- a/infer/tests/endtoend/java/infer/ResourceLeaksTest.java +++ b/infer/tests/endtoend/java/infer/ResourceLeaksTest.java @@ -1,6 +1,10 @@ /* -* Copyright (c) 2013- Facebook. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ package endtoend.java.infer; diff --git a/infer/tests/endtoend/java/infer/ReturnValueIgnoredTest.java b/infer/tests/endtoend/java/infer/ReturnValueIgnoredTest.java index 023588ffa..47221b887 100644 --- a/infer/tests/endtoend/java/infer/ReturnValueIgnoredTest.java +++ b/infer/tests/endtoend/java/infer/ReturnValueIgnoredTest.java @@ -1,6 +1,10 @@ /* -* Copyright (c) 2013- Facebook. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ package endtoend.java.infer; diff --git a/infer/tests/endtoend/java/infer/WriterLeaksTest.java b/infer/tests/endtoend/java/infer/WriterLeaksTest.java index 4522c2545..7f53f3e85 100644 --- a/infer/tests/endtoend/java/infer/WriterLeaksTest.java +++ b/infer/tests/endtoend/java/infer/WriterLeaksTest.java @@ -1,6 +1,10 @@ /* -* Copyright (c) 2013- Facebook. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ package endtoend.java.infer; diff --git a/infer/tests/endtoend/java/tracing/ArrayIndexOutOfBoundsExceptionTest.java b/infer/tests/endtoend/java/tracing/ArrayIndexOutOfBoundsExceptionTest.java index e87db923a..1f68605f0 100644 --- a/infer/tests/endtoend/java/tracing/ArrayIndexOutOfBoundsExceptionTest.java +++ b/infer/tests/endtoend/java/tracing/ArrayIndexOutOfBoundsExceptionTest.java @@ -1,6 +1,10 @@ /* -* Copyright (c) 2015-present Facebook. +* Copyright (c) 2015 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ diff --git a/infer/tests/endtoend/java/tracing/ClassCastExceptionTest.java b/infer/tests/endtoend/java/tracing/ClassCastExceptionTest.java index 62e071cd4..10ab9be77 100644 --- a/infer/tests/endtoend/java/tracing/ClassCastExceptionTest.java +++ b/infer/tests/endtoend/java/tracing/ClassCastExceptionTest.java @@ -1,6 +1,10 @@ /* -* Copyright (c) 2015-present Facebook. +* Copyright (c) 2015 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ package endtoend.java.tracing; diff --git a/infer/tests/endtoend/java/tracing/LocallyDefinedExceptionTest.java b/infer/tests/endtoend/java/tracing/LocallyDefinedExceptionTest.java index bbe61a93d..d10a8e2f1 100644 --- a/infer/tests/endtoend/java/tracing/LocallyDefinedExceptionTest.java +++ b/infer/tests/endtoend/java/tracing/LocallyDefinedExceptionTest.java @@ -1,3 +1,12 @@ +/* +* Copyright (c) 2015 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. +*/ + package endtoend.java.tracing; import static org.hamcrest.MatcherAssert.assertThat; diff --git a/infer/tests/endtoend/java/tracing/NullPointerExceptionTest.java b/infer/tests/endtoend/java/tracing/NullPointerExceptionTest.java index 33149c770..4e54eeee0 100644 --- a/infer/tests/endtoend/java/tracing/NullPointerExceptionTest.java +++ b/infer/tests/endtoend/java/tracing/NullPointerExceptionTest.java @@ -1,6 +1,10 @@ /* -* Copyright (c) 2015-present Facebook. +* Copyright (c) 2015 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ diff --git a/infer/tests/endtoend/java/tracing/ReportOnMainTest.java b/infer/tests/endtoend/java/tracing/ReportOnMainTest.java index 1f95db39e..95cc54b17 100644 --- a/infer/tests/endtoend/java/tracing/ReportOnMainTest.java +++ b/infer/tests/endtoend/java/tracing/ReportOnMainTest.java @@ -1,6 +1,10 @@ /* -* Copyright (c) 2015-present Facebook. +* Copyright (c) 2015 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ package endtoend.java.tracing; diff --git a/infer/tests/endtoend/java/tracing/UnavoidableExceptionTest.java b/infer/tests/endtoend/java/tracing/UnavoidableExceptionTest.java index a95cdd2e7..29500c02c 100644 --- a/infer/tests/endtoend/java/tracing/UnavoidableExceptionTest.java +++ b/infer/tests/endtoend/java/tracing/UnavoidableExceptionTest.java @@ -1,6 +1,10 @@ /* -* Copyright (c) 2015-present Facebook. +* Copyright (c) 2015 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ diff --git a/infer/tests/endtoend/objc/AutoreleaseTest.java b/infer/tests/endtoend/objc/AutoreleaseTest.java index d2d2fc555..d81b85b3e 100644 --- a/infer/tests/endtoend/objc/AutoreleaseTest.java +++ b/infer/tests/endtoend/objc/AutoreleaseTest.java @@ -1,6 +1,10 @@ /* - * Copyright (c) 2013- Facebook. - * All rights reserved. +* Copyright (c) 2013 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ package endtoend.objc; diff --git a/infer/tests/endtoend/objc/BlockTest.java b/infer/tests/endtoend/objc/BlockTest.java index 869609887..61bf048c6 100644 --- a/infer/tests/endtoend/objc/BlockTest.java +++ b/infer/tests/endtoend/objc/BlockTest.java @@ -1,6 +1,10 @@ /* - * Copyright (c) 2013- Facebook. - * All rights reserved. +* Copyright (c) 2013 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ package endtoend.objc; diff --git a/infer/tests/endtoend/objc/CategoryProcdescTest.java b/infer/tests/endtoend/objc/CategoryProcdescTest.java index dfbfe5896..9d3c41ba4 100644 --- a/infer/tests/endtoend/objc/CategoryProcdescTest.java +++ b/infer/tests/endtoend/objc/CategoryProcdescTest.java @@ -1,6 +1,10 @@ /* - * Copyright (c) 2013- Facebook. - * All rights reserved. +* Copyright (c) 2013 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ package endtoend.objc; diff --git a/infer/tests/endtoend/objc/DispatchTest.java b/infer/tests/endtoend/objc/DispatchTest.java index db6294f0d..5f5c74c50 100644 --- a/infer/tests/endtoend/objc/DispatchTest.java +++ b/infer/tests/endtoend/objc/DispatchTest.java @@ -1,6 +1,10 @@ /* - * Copyright (c) 2013- Facebook. - * All rights reserved. +* Copyright (c) 2013 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ package endtoend.objc; diff --git a/infer/tests/endtoend/objc/FieldSuperclassTest.java b/infer/tests/endtoend/objc/FieldSuperclassTest.java index 6051a98fa..db1afa3e6 100644 --- a/infer/tests/endtoend/objc/FieldSuperclassTest.java +++ b/infer/tests/endtoend/objc/FieldSuperclassTest.java @@ -1,6 +1,10 @@ /* - * Copyright (c) 2013- Facebook. - * All rights reserved. +* Copyright (c) 2013 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ package endtoend.objc; diff --git a/infer/tests/endtoend/objc/MemoryLeakBucketingArcTest.java b/infer/tests/endtoend/objc/MemoryLeakBucketingArcTest.java index 5854596f7..b3768c90c 100644 --- a/infer/tests/endtoend/objc/MemoryLeakBucketingArcTest.java +++ b/infer/tests/endtoend/objc/MemoryLeakBucketingArcTest.java @@ -1,6 +1,10 @@ /* - * Copyright (c) 2013- Facebook. - * All rights reserved. +* Copyright (c) 2013 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ package endtoend.objc; diff --git a/infer/tests/endtoend/objc/MemoryLeakBucketingTest.java b/infer/tests/endtoend/objc/MemoryLeakBucketingTest.java index 879c6c200..e7b7d7cfb 100644 --- a/infer/tests/endtoend/objc/MemoryLeakBucketingTest.java +++ b/infer/tests/endtoend/objc/MemoryLeakBucketingTest.java @@ -1,6 +1,10 @@ /* - * Copyright (c) 2013- Facebook. - * All rights reserved. +* Copyright (c) 2013 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ package endtoend.objc; diff --git a/infer/tests/endtoend/objc/MemoryLeakTest.java b/infer/tests/endtoend/objc/MemoryLeakTest.java index cbcb93373..104830bf3 100644 --- a/infer/tests/endtoend/objc/MemoryLeakTest.java +++ b/infer/tests/endtoend/objc/MemoryLeakTest.java @@ -1,6 +1,10 @@ /* - * Copyright (c) 2013- Facebook. - * All rights reserved. +* Copyright (c) 2013 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ package endtoend.objc; diff --git a/infer/tests/endtoend/objc/MemoryLeaksFromModelsTest.java b/infer/tests/endtoend/objc/MemoryLeaksFromModelsTest.java index 9838a8a4e..94741789b 100644 --- a/infer/tests/endtoend/objc/MemoryLeaksFromModelsTest.java +++ b/infer/tests/endtoend/objc/MemoryLeaksFromModelsTest.java @@ -1,6 +1,10 @@ /* - * Copyright (c) 2013- Facebook. - * All rights reserved. +* Copyright (c) 2013 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ package endtoend.objc; diff --git a/infer/tests/endtoend/objc/NPDCoreFoundationClassTest.java b/infer/tests/endtoend/objc/NPDCoreFoundationClassTest.java index 77f1f0740..37256f53c 100644 --- a/infer/tests/endtoend/objc/NPDCoreFoundationClassTest.java +++ b/infer/tests/endtoend/objc/NPDCoreFoundationClassTest.java @@ -1,6 +1,10 @@ /* - * Copyright (c) 2013- Facebook. - * All rights reserved. +* Copyright (c) 2013 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ package endtoend.objc; diff --git a/infer/tests/endtoend/objc/NPEArrayLiteralTest.java b/infer/tests/endtoend/objc/NPEArrayLiteralTest.java index b36cf2636..c270545c3 100644 --- a/infer/tests/endtoend/objc/NPEArrayLiteralTest.java +++ b/infer/tests/endtoend/objc/NPEArrayLiteralTest.java @@ -1,6 +1,10 @@ /* - * Copyright (c) 2013- Facebook. - * All rights reserved. +* Copyright (c) 2013 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ package endtoend.objc; diff --git a/infer/tests/endtoend/objc/NPEMallocTest.java b/infer/tests/endtoend/objc/NPEMallocTest.java index ad509dff0..9a1e504e8 100644 --- a/infer/tests/endtoend/objc/NPEMallocTest.java +++ b/infer/tests/endtoend/objc/NPEMallocTest.java @@ -1,6 +1,10 @@ /* - * Copyright (c) 2013- Facebook. - * All rights reserved. +* Copyright (c) 2013 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ package endtoend.objc; diff --git a/infer/tests/endtoend/objc/NPESelfTest.java b/infer/tests/endtoend/objc/NPESelfTest.java index 79d9ca169..f4ad967f5 100644 --- a/infer/tests/endtoend/objc/NPESelfTest.java +++ b/infer/tests/endtoend/objc/NPESelfTest.java @@ -1,6 +1,10 @@ /* - * Copyright (c) 2013- Facebook. - * All rights reserved. +* Copyright (c) 2013 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ package endtoend.objc; diff --git a/infer/tests/endtoend/objc/NSAssertTest.java b/infer/tests/endtoend/objc/NSAssertTest.java index 512aed744..883092627 100644 --- a/infer/tests/endtoend/objc/NSAssertTest.java +++ b/infer/tests/endtoend/objc/NSAssertTest.java @@ -1,6 +1,10 @@ /* - * Copyright (c) 2013- Facebook. - * All rights reserved. +* Copyright (c) 2013 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ package endtoend.objc; diff --git a/infer/tests/endtoend/objc/NSMakeCollectableTest.java b/infer/tests/endtoend/objc/NSMakeCollectableTest.java index 5035db708..a6cf1a96b 100644 --- a/infer/tests/endtoend/objc/NSMakeCollectableTest.java +++ b/infer/tests/endtoend/objc/NSMakeCollectableTest.java @@ -1,6 +1,10 @@ /* - * Copyright (c) 2013- Facebook. - * All rights reserved. +* Copyright (c) 2013 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ package endtoend.objc; diff --git a/infer/tests/endtoend/objc/NilParamDerefObjCClassTest.java b/infer/tests/endtoend/objc/NilParamDerefObjCClassTest.java index 2b3f51557..4db01ab21 100644 --- a/infer/tests/endtoend/objc/NilParamDerefObjCClassTest.java +++ b/infer/tests/endtoend/objc/NilParamDerefObjCClassTest.java @@ -1,6 +1,10 @@ /* - * Copyright (c) 2013- Facebook. - * All rights reserved. +* Copyright (c) 2013 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ package endtoend.objc; diff --git a/infer/tests/endtoend/objc/NonnullAttributeTest.java b/infer/tests/endtoend/objc/NonnullAttributeTest.java index cbe50967f..017780e4b 100644 --- a/infer/tests/endtoend/objc/NonnullAttributeTest.java +++ b/infer/tests/endtoend/objc/NonnullAttributeTest.java @@ -1,6 +1,10 @@ /* - * Copyright (c) 2013- Facebook. - * All rights reserved. +* Copyright (c) 2013 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ package endtoend.objc; diff --git a/infer/tests/endtoend/objc/NullDerefObjCBlockTest.java b/infer/tests/endtoend/objc/NullDerefObjCBlockTest.java index 0d8efa8f4..041799908 100644 --- a/infer/tests/endtoend/objc/NullDerefObjCBlockTest.java +++ b/infer/tests/endtoend/objc/NullDerefObjCBlockTest.java @@ -1,6 +1,10 @@ /* - * Copyright (c) 2013- Facebook. - * All rights reserved. +* Copyright (c) 2013 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ package endtoend.objc; diff --git a/infer/tests/endtoend/objc/NullDerefObjCClassTest.java b/infer/tests/endtoend/objc/NullDerefObjCClassTest.java index d8e6534c3..bef525ff0 100644 --- a/infer/tests/endtoend/objc/NullDerefObjCClassTest.java +++ b/infer/tests/endtoend/objc/NullDerefObjCClassTest.java @@ -1,6 +1,10 @@ /* - * Copyright (c) 2013- Facebook. - * All rights reserved. +* Copyright (c) 2013 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ package endtoend.objc; diff --git a/infer/tests/endtoend/objc/NullReturnedByMethodTest.java b/infer/tests/endtoend/objc/NullReturnedByMethodTest.java index 550f1a8a8..208656301 100644 --- a/infer/tests/endtoend/objc/NullReturnedByMethodTest.java +++ b/infer/tests/endtoend/objc/NullReturnedByMethodTest.java @@ -1,6 +1,10 @@ /* - * Copyright (c) 2013- Facebook. - * All rights reserved. +* Copyright (c) 2013 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ package endtoend.objc; diff --git a/infer/tests/endtoend/objc/ParameterNotNullableTest.java b/infer/tests/endtoend/objc/ParameterNotNullableTest.java index f35b5de8a..66bda32f5 100644 --- a/infer/tests/endtoend/objc/ParameterNotNullableTest.java +++ b/infer/tests/endtoend/objc/ParameterNotNullableTest.java @@ -1,6 +1,10 @@ /* -* Copyright (c) 2013- Facebook. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ package endtoend.objc; diff --git a/infer/tests/endtoend/objc/PrematureNilTerminationTest.java b/infer/tests/endtoend/objc/PrematureNilTerminationTest.java index 6e4c617fe..8bcf0c8e1 100644 --- a/infer/tests/endtoend/objc/PrematureNilTerminationTest.java +++ b/infer/tests/endtoend/objc/PrematureNilTerminationTest.java @@ -1,6 +1,10 @@ /* - * Copyright (c) 2013- Facebook. - * All rights reserved. +* Copyright (c) 2013 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ package endtoend.objc; diff --git a/infer/tests/endtoend/objc/ProcdescTest.java b/infer/tests/endtoend/objc/ProcdescTest.java index e0ac72cae..aa3de61dd 100644 --- a/infer/tests/endtoend/objc/ProcdescTest.java +++ b/infer/tests/endtoend/objc/ProcdescTest.java @@ -1,6 +1,10 @@ /* - * Copyright (c) 2013- Facebook. - * All rights reserved. +* Copyright (c) 2013 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ package endtoend.objc; diff --git a/infer/tests/endtoend/objc/PropertyMemoryLeakTest.java b/infer/tests/endtoend/objc/PropertyMemoryLeakTest.java index 7529261b1..683a96584 100644 --- a/infer/tests/endtoend/objc/PropertyMemoryLeakTest.java +++ b/infer/tests/endtoend/objc/PropertyMemoryLeakTest.java @@ -1,6 +1,10 @@ /* - * Copyright (c) 2013- Facebook. - * All rights reserved. +* Copyright (c) 2013 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ package endtoend.objc; diff --git a/infer/tests/endtoend/objc/PropertyTest.java b/infer/tests/endtoend/objc/PropertyTest.java index e30203379..fdfd5be86 100644 --- a/infer/tests/endtoend/objc/PropertyTest.java +++ b/infer/tests/endtoend/objc/PropertyTest.java @@ -1,6 +1,10 @@ /* - * Copyright (c) 2013- Facebook. - * All rights reserved. +* Copyright (c) 2013 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ package endtoend.objc; diff --git a/infer/tests/endtoend/objc/ProtocolProcdescTest.java b/infer/tests/endtoend/objc/ProtocolProcdescTest.java index 499841f8f..8707391d4 100644 --- a/infer/tests/endtoend/objc/ProtocolProcdescTest.java +++ b/infer/tests/endtoend/objc/ProtocolProcdescTest.java @@ -1,6 +1,10 @@ /* - * Copyright (c) 2013- Facebook. - * All rights reserved. +* Copyright (c) 2013 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ package endtoend.objc; diff --git a/infer/tests/endtoend/objc/ResourceLeakTest.java b/infer/tests/endtoend/objc/ResourceLeakTest.java index 502b59d97..6a6d5e8e2 100644 --- a/infer/tests/endtoend/objc/ResourceLeakTest.java +++ b/infer/tests/endtoend/objc/ResourceLeakTest.java @@ -1,6 +1,10 @@ /* - * Copyright (c) 2013- Facebook. - * All rights reserved. +* Copyright (c) 2013 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ package endtoend.objc; diff --git a/infer/tests/endtoend/objc/RetainCycle2Test.java b/infer/tests/endtoend/objc/RetainCycle2Test.java index 480092f14..0ef42d92e 100644 --- a/infer/tests/endtoend/objc/RetainCycle2Test.java +++ b/infer/tests/endtoend/objc/RetainCycle2Test.java @@ -1,6 +1,10 @@ /* - * Copyright (c) 2013- Facebook. - * All rights reserved. +* Copyright (c) 2013 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ package endtoend.objc; diff --git a/infer/tests/endtoend/objc/RetainCycleTest.java b/infer/tests/endtoend/objc/RetainCycleTest.java index b9ac62914..84c4c5bb3 100644 --- a/infer/tests/endtoend/objc/RetainCycleTest.java +++ b/infer/tests/endtoend/objc/RetainCycleTest.java @@ -1,6 +1,10 @@ /* - * Copyright (c) 2013- Facebook. - * All rights reserved. +* Copyright (c) 2013 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ package endtoend.objc; diff --git a/infer/tests/endtoend/objc/RetainreleaseTest.java b/infer/tests/endtoend/objc/RetainreleaseTest.java index 4df0fe95e..3c6a30935 100644 --- a/infer/tests/endtoend/objc/RetainreleaseTest.java +++ b/infer/tests/endtoend/objc/RetainreleaseTest.java @@ -1,6 +1,10 @@ /* - * Copyright (c) 2013- Facebook. - * All rights reserved. +* Copyright (c) 2013 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ package endtoend.objc; diff --git a/infer/tests/endtoend/objc/ReturnTest.java b/infer/tests/endtoend/objc/ReturnTest.java index 940e0e421..3d6707b6e 100644 --- a/infer/tests/endtoend/objc/ReturnTest.java +++ b/infer/tests/endtoend/objc/ReturnTest.java @@ -1,6 +1,10 @@ /* - * Copyright (c) 2013- Facebook. - * All rights reserved. +* Copyright (c) 2013 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ package endtoend.objc; diff --git a/infer/tests/endtoend/objc/SuperTest.java b/infer/tests/endtoend/objc/SuperTest.java index 9d227fd2b..c5444083b 100644 --- a/infer/tests/endtoend/objc/SuperTest.java +++ b/infer/tests/endtoend/objc/SuperTest.java @@ -1,6 +1,10 @@ /* - * Copyright (c) 2013- Facebook. - * All rights reserved. +* Copyright (c) 2013 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ package endtoend.objc; diff --git a/infer/tests/endtoend/objc/TollBridgeTest.java b/infer/tests/endtoend/objc/TollBridgeTest.java index 5df152d07..7216c1d0e 100644 --- a/infer/tests/endtoend/objc/TollBridgeTest.java +++ b/infer/tests/endtoend/objc/TollBridgeTest.java @@ -1,6 +1,10 @@ /* - * Copyright (c) 2013- Facebook. - * All rights reserved. +* Copyright (c) 2013 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ package endtoend.objc; diff --git a/infer/tests/endtoend/objc/UpdateDictNPETest.java b/infer/tests/endtoend/objc/UpdateDictNPETest.java index 15c829a9d..0473d9ed7 100644 --- a/infer/tests/endtoend/objc/UpdateDictNPETest.java +++ b/infer/tests/endtoend/objc/UpdateDictNPETest.java @@ -1,6 +1,10 @@ /* - * Copyright (c) 2013- Facebook. - * All rights reserved. +* Copyright (c) 2013 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ package endtoend.objc; diff --git a/infer/tests/frontend/c/ArithmeticExpTest.java b/infer/tests/frontend/c/ArithmeticExpTest.java index 7338a81b5..eed386fc8 100644 --- a/infer/tests/frontend/c/ArithmeticExpTest.java +++ b/infer/tests/frontend/c/ArithmeticExpTest.java @@ -1,6 +1,10 @@ /* - * Copyright (c) 2013- Facebook. - * All rights reserved. +* Copyright (c) 2013 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ package frontend.c; diff --git a/infer/tests/frontend/c/BoolTest.java b/infer/tests/frontend/c/BoolTest.java index 74c2d2c54..0d9d572c6 100644 --- a/infer/tests/frontend/c/BoolTest.java +++ b/infer/tests/frontend/c/BoolTest.java @@ -1,6 +1,10 @@ /* - * Copyright (c) 2013- Facebook. - * All rights reserved. +* Copyright (c) 2013 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ package frontend.c; diff --git a/infer/tests/frontend/c/CommaOperatorTest.java b/infer/tests/frontend/c/CommaOperatorTest.java index 9ef3bcd86..6403fbba0 100644 --- a/infer/tests/frontend/c/CommaOperatorTest.java +++ b/infer/tests/frontend/c/CommaOperatorTest.java @@ -1,6 +1,10 @@ /* - * Copyright (c) 2013- Facebook. - * All rights reserved. +* Copyright (c) 2013 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ package frontend.c; diff --git a/infer/tests/frontend/c/ConditionalOperatorTest.java b/infer/tests/frontend/c/ConditionalOperatorTest.java index 21954fa13..ca1a9ffb9 100644 --- a/infer/tests/frontend/c/ConditionalOperatorTest.java +++ b/infer/tests/frontend/c/ConditionalOperatorTest.java @@ -1,6 +1,10 @@ /* - * Copyright (c) 2013- Facebook. - * All rights reserved. +* Copyright (c) 2013 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ package frontend.c; diff --git a/infer/tests/frontend/c/EnumerationTest.java b/infer/tests/frontend/c/EnumerationTest.java index 054c3c971..207fbb66d 100644 --- a/infer/tests/frontend/c/EnumerationTest.java +++ b/infer/tests/frontend/c/EnumerationTest.java @@ -1,6 +1,10 @@ /* - * Copyright (c) 2013- Facebook. - * All rights reserved. +* Copyright (c) 2013 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ package frontend.c; diff --git a/infer/tests/frontend/c/GnuexprTest.java b/infer/tests/frontend/c/GnuexprTest.java index cc32deefb..c062bcab5 100644 --- a/infer/tests/frontend/c/GnuexprTest.java +++ b/infer/tests/frontend/c/GnuexprTest.java @@ -1,6 +1,10 @@ /* - * Copyright (c) 2013- Facebook. - * All rights reserved. +* Copyright (c) 2013 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ package frontend.c; diff --git a/infer/tests/frontend/c/GotoStmtLabelStmtTest.java b/infer/tests/frontend/c/GotoStmtLabelStmtTest.java index dadb94add..e95932a4e 100644 --- a/infer/tests/frontend/c/GotoStmtLabelStmtTest.java +++ b/infer/tests/frontend/c/GotoStmtLabelStmtTest.java @@ -1,6 +1,10 @@ /* - * Copyright (c) 2013- Facebook. - * All rights reserved. +* Copyright (c) 2013 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ package frontend.c; diff --git a/infer/tests/frontend/c/InitListExprTest.java b/infer/tests/frontend/c/InitListExprTest.java index aa40fa39f..11b7be132 100644 --- a/infer/tests/frontend/c/InitListExprTest.java +++ b/infer/tests/frontend/c/InitListExprTest.java @@ -1,6 +1,10 @@ /* - * Copyright (c) 2013- Facebook. - * All rights reserved. +* Copyright (c) 2013 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ package frontend.c; diff --git a/infer/tests/frontend/c/LoopsTest.java b/infer/tests/frontend/c/LoopsTest.java index 595409e5d..e512492f1 100644 --- a/infer/tests/frontend/c/LoopsTest.java +++ b/infer/tests/frontend/c/LoopsTest.java @@ -1,6 +1,10 @@ /* - * Copyright (c) 2013- Facebook. - * All rights reserved. +* Copyright (c) 2013 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ package frontend.c; diff --git a/infer/tests/frontend/c/NestedOperatorsTest.java b/infer/tests/frontend/c/NestedOperatorsTest.java index 9af93749c..498b292b4 100644 --- a/infer/tests/frontend/c/NestedOperatorsTest.java +++ b/infer/tests/frontend/c/NestedOperatorsTest.java @@ -1,6 +1,10 @@ /* - * Copyright (c) 2013- Facebook. - * All rights reserved. +* Copyright (c) 2013 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ package frontend.c; diff --git a/infer/tests/frontend/c/PrototypeTest.java b/infer/tests/frontend/c/PrototypeTest.java index 3e56be94e..cb494d755 100644 --- a/infer/tests/frontend/c/PrototypeTest.java +++ b/infer/tests/frontend/c/PrototypeTest.java @@ -1,6 +1,10 @@ /* - * Copyright (c) 2013- Facebook. - * All rights reserved. +* Copyright (c) 2013 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ package frontend.c; diff --git a/infer/tests/frontend/c/SwitchStmtTest.java b/infer/tests/frontend/c/SwitchStmtTest.java index d6d4eedb9..d0cf2224e 100644 --- a/infer/tests/frontend/c/SwitchStmtTest.java +++ b/infer/tests/frontend/c/SwitchStmtTest.java @@ -1,6 +1,10 @@ /* - * Copyright (c) 2013- Facebook. - * All rights reserved. +* Copyright (c) 2013 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ package frontend.c; diff --git a/infer/tests/frontend/cpp/CastsTest.java b/infer/tests/frontend/cpp/CastsTest.java index 7de431601..913652bcb 100644 --- a/infer/tests/frontend/cpp/CastsTest.java +++ b/infer/tests/frontend/cpp/CastsTest.java @@ -1,6 +1,10 @@ /* - * Copyright (c) 2013- Facebook. - * All rights reserved. +* Copyright (c) 2013 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ package frontend.cpp; diff --git a/infer/tests/frontend/cpp/FunctionsTest.java b/infer/tests/frontend/cpp/FunctionsTest.java index d6bb203c4..bbc83a228 100644 --- a/infer/tests/frontend/cpp/FunctionsTest.java +++ b/infer/tests/frontend/cpp/FunctionsTest.java @@ -1,6 +1,10 @@ /* - * Copyright (c) 2013- Facebook. - * All rights reserved. +* Copyright (c) 2013 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ package frontend.cpp; diff --git a/infer/tests/frontend/cpp/LiteralsTest.java b/infer/tests/frontend/cpp/LiteralsTest.java index 0a99f98cd..dcb4371d6 100644 --- a/infer/tests/frontend/cpp/LiteralsTest.java +++ b/infer/tests/frontend/cpp/LiteralsTest.java @@ -1,6 +1,10 @@ /* - * Copyright (c) 2013- Facebook. - * All rights reserved. +* Copyright (c) 2013 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ package frontend.cpp; diff --git a/infer/tests/frontend/cpp/NamespaceTest.java b/infer/tests/frontend/cpp/NamespaceTest.java index 21e1c8d5b..07ef1b2b5 100644 --- a/infer/tests/frontend/cpp/NamespaceTest.java +++ b/infer/tests/frontend/cpp/NamespaceTest.java @@ -1,6 +1,10 @@ /* - * Copyright (c) 2013- Facebook. - * All rights reserved. +* Copyright (c) 2013 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ package frontend.cpp; diff --git a/infer/tests/frontend/objc/ArcExampleTest.java b/infer/tests/frontend/objc/ArcExampleTest.java index 135b48000..7749f29c0 100644 --- a/infer/tests/frontend/objc/ArcExampleTest.java +++ b/infer/tests/frontend/objc/ArcExampleTest.java @@ -1,6 +1,10 @@ /* - * Copyright (c) 2014- Facebook. - * All rights reserved. +* Copyright (c) 2014 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ package frontend.objc; diff --git a/infer/tests/frontend/objc/BlockTest.java b/infer/tests/frontend/objc/BlockTest.java index 3fd676ca9..e82ad7dfc 100644 --- a/infer/tests/frontend/objc/BlockTest.java +++ b/infer/tests/frontend/objc/BlockTest.java @@ -1,6 +1,10 @@ /* - * Copyright (c) 2013- Facebook. - * All rights reserved. +* Copyright (c) 2013 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ package frontend.objc; diff --git a/infer/tests/frontend/objc/BoxingTest.java b/infer/tests/frontend/objc/BoxingTest.java index 2edef0f17..48b4eb4e2 100644 --- a/infer/tests/frontend/objc/BoxingTest.java +++ b/infer/tests/frontend/objc/BoxingTest.java @@ -1,6 +1,10 @@ /* - * Copyright (c) 2013- Facebook. - * All rights reserved. +* Copyright (c) 2013 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ package frontend.objc; diff --git a/infer/tests/frontend/objc/CategoryTest.java b/infer/tests/frontend/objc/CategoryTest.java index ff2112feb..e7df41915 100644 --- a/infer/tests/frontend/objc/CategoryTest.java +++ b/infer/tests/frontend/objc/CategoryTest.java @@ -1,6 +1,10 @@ /* - * Copyright (c) 2013- Facebook. - * All rights reserved. +* Copyright (c) 2013 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ package frontend.objc; diff --git a/infer/tests/frontend/objc/ConditionalOperatorTest.java b/infer/tests/frontend/objc/ConditionalOperatorTest.java index 048cfe401..d5d8f716b 100644 --- a/infer/tests/frontend/objc/ConditionalOperatorTest.java +++ b/infer/tests/frontend/objc/ConditionalOperatorTest.java @@ -1,6 +1,10 @@ /* - * Copyright (c) 2013- Facebook. - * All rights reserved. +* Copyright (c) 2013 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ package frontend.objc; diff --git a/infer/tests/frontend/objc/ExceptionTest.java b/infer/tests/frontend/objc/ExceptionTest.java index dee2101d7..dd05cb894 100644 --- a/infer/tests/frontend/objc/ExceptionTest.java +++ b/infer/tests/frontend/objc/ExceptionTest.java @@ -1,6 +1,10 @@ /* - * Copyright (c) 2013- Facebook. - * All rights reserved. +* Copyright (c) 2013 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ package frontend.objc; diff --git a/infer/tests/frontend/objc/FastEnumerationTest.java b/infer/tests/frontend/objc/FastEnumerationTest.java index 28e8877d1..47d7c220f 100644 --- a/infer/tests/frontend/objc/FastEnumerationTest.java +++ b/infer/tests/frontend/objc/FastEnumerationTest.java @@ -1,6 +1,10 @@ /* - * Copyright (c) 2013- Facebook. - * All rights reserved. +* Copyright (c) 2013 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ package frontend.objc; diff --git a/infer/tests/frontend/objc/LateDefinedVarDeclTest.java b/infer/tests/frontend/objc/LateDefinedVarDeclTest.java index 48a67f816..00abf9329 100644 --- a/infer/tests/frontend/objc/LateDefinedVarDeclTest.java +++ b/infer/tests/frontend/objc/LateDefinedVarDeclTest.java @@ -1,6 +1,10 @@ /* - * Copyright (c) 2013- Facebook. - * All rights reserved. +* Copyright (c) 2013 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ package frontend.objc; diff --git a/infer/tests/frontend/objc/MallocTest.java b/infer/tests/frontend/objc/MallocTest.java index 30ad4c331..82c81b868 100644 --- a/infer/tests/frontend/objc/MallocTest.java +++ b/infer/tests/frontend/objc/MallocTest.java @@ -1,6 +1,10 @@ /* - * Copyright (c) 2013- Facebook. - * All rights reserved. +* Copyright (c) 2013 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ package frontend.objc; diff --git a/infer/tests/frontend/objc/MemoryLeakBenchmarkTest.java b/infer/tests/frontend/objc/MemoryLeakBenchmarkTest.java index 39c0f1989..d7d7cd066 100644 --- a/infer/tests/frontend/objc/MemoryLeakBenchmarkTest.java +++ b/infer/tests/frontend/objc/MemoryLeakBenchmarkTest.java @@ -1,6 +1,10 @@ /* - * Copyright (c) 2013- Facebook. - * All rights reserved. +* Copyright (c) 2013 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ package frontend.objc; diff --git a/infer/tests/frontend/objc/NSAssertTest.java b/infer/tests/frontend/objc/NSAssertTest.java index 25b56b646..dc9c22b05 100644 --- a/infer/tests/frontend/objc/NSAssertTest.java +++ b/infer/tests/frontend/objc/NSAssertTest.java @@ -1,6 +1,10 @@ /* - * Copyright (c) 2014- Facebook. - * All rights reserved. +* Copyright (c) 2014 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ package frontend.objc; diff --git a/infer/tests/frontend/objc/NonnullAttributeTest.java b/infer/tests/frontend/objc/NonnullAttributeTest.java index 58b9661ae..a8b3ec8c5 100644 --- a/infer/tests/frontend/objc/NonnullAttributeTest.java +++ b/infer/tests/frontend/objc/NonnullAttributeTest.java @@ -1,6 +1,10 @@ /* - * Copyright (c) 2014- Facebook. - * All rights reserved. +* Copyright (c) 2014 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ package frontend.objc; diff --git a/infer/tests/frontend/objc/PredefinedExpressionTest.java b/infer/tests/frontend/objc/PredefinedExpressionTest.java index 2fe05d5ad..085f1ea5c 100644 --- a/infer/tests/frontend/objc/PredefinedExpressionTest.java +++ b/infer/tests/frontend/objc/PredefinedExpressionTest.java @@ -1,6 +1,10 @@ /* - * Copyright (c) 2014- Facebook. - * All rights reserved. +* Copyright (c) 2014 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ package frontend.objc; diff --git a/infer/tests/frontend/objc/PropertyTest.java b/infer/tests/frontend/objc/PropertyTest.java index 8a3476633..83f762ee8 100644 --- a/infer/tests/frontend/objc/PropertyTest.java +++ b/infer/tests/frontend/objc/PropertyTest.java @@ -1,6 +1,10 @@ /* - * Copyright (c) 2013- Facebook. - * All rights reserved. +* Copyright (c) 2013 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ package frontend.objc; diff --git a/infer/tests/frontend/objc/ProtocolTest.java b/infer/tests/frontend/objc/ProtocolTest.java index 4707f7888..5dbcb0888 100644 --- a/infer/tests/frontend/objc/ProtocolTest.java +++ b/infer/tests/frontend/objc/ProtocolTest.java @@ -1,6 +1,10 @@ /* - * Copyright (c) 2013- Facebook. - * All rights reserved. +* Copyright (c) 2013 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ package frontend.objc; diff --git a/infer/tests/frontend/objc/ReturnTest.java b/infer/tests/frontend/objc/ReturnTest.java index 81b153e70..a7f7c0145 100644 --- a/infer/tests/frontend/objc/ReturnTest.java +++ b/infer/tests/frontend/objc/ReturnTest.java @@ -1,6 +1,10 @@ /* - * Copyright (c) 2013- Facebook. - * All rights reserved. +* Copyright (c) 2013 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ package frontend.objc; diff --git a/infer/tests/frontend/objc/StaticSelf.java b/infer/tests/frontend/objc/StaticSelf.java index 2de41b574..aefaacb50 100644 --- a/infer/tests/frontend/objc/StaticSelf.java +++ b/infer/tests/frontend/objc/StaticSelf.java @@ -1,6 +1,10 @@ /* - * Copyright (c) 2013- Facebook. - * All rights reserved. +* Copyright (c) 2013 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ package frontend.objc; diff --git a/infer/tests/frontend/objc/StringTest.java b/infer/tests/frontend/objc/StringTest.java index 7d7932d88..684079496 100644 --- a/infer/tests/frontend/objc/StringTest.java +++ b/infer/tests/frontend/objc/StringTest.java @@ -1,6 +1,10 @@ /* - * Copyright (c) 2013- Facebook. - * All rights reserved. +* Copyright (c) 2013 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ package frontend.objc; diff --git a/infer/tests/frontend/objc/SubclassTest.java b/infer/tests/frontend/objc/SubclassTest.java index 2aebc24e6..d9963094c 100644 --- a/infer/tests/frontend/objc/SubclassTest.java +++ b/infer/tests/frontend/objc/SubclassTest.java @@ -1,6 +1,10 @@ /* - * Copyright (c) 2013- Facebook. - * All rights reserved. +* Copyright (c) 2013 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ package frontend.objc; diff --git a/infer/tests/frontend/objc/TypesTest.java b/infer/tests/frontend/objc/TypesTest.java index 38afb54de..55367b4b9 100644 --- a/infer/tests/frontend/objc/TypesTest.java +++ b/infer/tests/frontend/objc/TypesTest.java @@ -1,6 +1,10 @@ /* - * Copyright (c) 2013- Facebook. - * All rights reserved. +* Copyright (c) 2013 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ package frontend.objc; diff --git a/infer/tests/frontend/objcpp/FuncOverloadingTest.java b/infer/tests/frontend/objcpp/FuncOverloadingTest.java index 3d3a62fb3..c81d07b78 100644 --- a/infer/tests/frontend/objcpp/FuncOverloadingTest.java +++ b/infer/tests/frontend/objcpp/FuncOverloadingTest.java @@ -1,6 +1,10 @@ /* - * Copyright (c) 2013- Facebook. - * All rights reserved. +* Copyright (c) 2013 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ package frontend.objcpp; diff --git a/infer/tests/utils/InferError.java b/infer/tests/utils/InferError.java index cf4386e01..77c3080ee 100644 --- a/infer/tests/utils/InferError.java +++ b/infer/tests/utils/InferError.java @@ -1,6 +1,10 @@ /* -* Copyright (c) 2013- Facebook. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ package utils; diff --git a/infer/tests/utils/InferException.java b/infer/tests/utils/InferException.java index 968ddcd51..2b2de0a9b 100644 --- a/infer/tests/utils/InferException.java +++ b/infer/tests/utils/InferException.java @@ -1,6 +1,10 @@ /* -* Copyright (c) 2013- Facebook. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ package utils; diff --git a/infer/tests/utils/InferResults.java b/infer/tests/utils/InferResults.java index 558c89462..23877ed94 100644 --- a/infer/tests/utils/InferResults.java +++ b/infer/tests/utils/InferResults.java @@ -1,6 +1,10 @@ /* -* Copyright (c) 2013- Facebook. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ package utils; diff --git a/infer/tests/utils/InferRunner.java b/infer/tests/utils/InferRunner.java index 126e4c5d7..29fb551b6 100644 --- a/infer/tests/utils/InferRunner.java +++ b/infer/tests/utils/InferRunner.java @@ -1,6 +1,10 @@ /* -* Copyright (c) 2013- Facebook. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ package utils; diff --git a/infer/tests/utils/Language.java b/infer/tests/utils/Language.java index bdcd84950..2dfec6406 100644 --- a/infer/tests/utils/Language.java +++ b/infer/tests/utils/Language.java @@ -1,6 +1,10 @@ /* -* Copyright (c) 2013- Facebook. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ package utils; diff --git a/infer/tests/utils/TestType.java b/infer/tests/utils/TestType.java index 59e0b8138..b23f37d36 100644 --- a/infer/tests/utils/TestType.java +++ b/infer/tests/utils/TestType.java @@ -1,6 +1,10 @@ /* -* Copyright (c) 2013- Facebook. +* Copyright (c) 2013 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ package utils; diff --git a/infer/tests/utils/matchers/DotFilesEqual.java b/infer/tests/utils/matchers/DotFilesEqual.java index bb4efb4de..506e55b32 100644 --- a/infer/tests/utils/matchers/DotFilesEqual.java +++ b/infer/tests/utils/matchers/DotFilesEqual.java @@ -1,3 +1,12 @@ +/* +* Copyright (c) 2015 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. +*/ + package utils.matchers; import org.hamcrest.BaseMatcher; diff --git a/infer/tests/utils/matchers/ErrorPattern.java b/infer/tests/utils/matchers/ErrorPattern.java index 68e880347..a5d1c6a73 100644 --- a/infer/tests/utils/matchers/ErrorPattern.java +++ b/infer/tests/utils/matchers/ErrorPattern.java @@ -1,6 +1,10 @@ /* -* Copyright (c) 2015 - Facebook. +* Copyright (c) 2015 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ package utils.matchers; diff --git a/infer/tests/utils/matchers/ResultContainsErrorInMethod.java b/infer/tests/utils/matchers/ResultContainsErrorInMethod.java index 16061a093..749405274 100644 --- a/infer/tests/utils/matchers/ResultContainsErrorInMethod.java +++ b/infer/tests/utils/matchers/ResultContainsErrorInMethod.java @@ -1,3 +1,12 @@ +/* +* Copyright (c) 2015 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. +*/ + package utils.matchers; import org.hamcrest.BaseMatcher; diff --git a/infer/tests/utils/matchers/ResultContainsErrorNoFilename.java b/infer/tests/utils/matchers/ResultContainsErrorNoFilename.java index 5b5173472..b8ccf0dbc 100644 --- a/infer/tests/utils/matchers/ResultContainsErrorNoFilename.java +++ b/infer/tests/utils/matchers/ResultContainsErrorNoFilename.java @@ -1,3 +1,12 @@ +/* +* Copyright (c) 2015 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. +*/ + package utils.matchers; import org.hamcrest.BaseMatcher; diff --git a/infer/tests/utils/matchers/ResultContainsExactly.java b/infer/tests/utils/matchers/ResultContainsExactly.java index 2d152cc3b..4aeac9e8d 100644 --- a/infer/tests/utils/matchers/ResultContainsExactly.java +++ b/infer/tests/utils/matchers/ResultContainsExactly.java @@ -1,6 +1,10 @@ /* * Copyright (c) 2015 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ package utils.matchers; diff --git a/infer/tests/utils/matchers/ResultContainsLineNumbers.java b/infer/tests/utils/matchers/ResultContainsLineNumbers.java index d1589f961..a43431068 100644 --- a/infer/tests/utils/matchers/ResultContainsLineNumbers.java +++ b/infer/tests/utils/matchers/ResultContainsLineNumbers.java @@ -1,3 +1,12 @@ +/* +* Copyright (c) 2015 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. +*/ + package utils.matchers; import org.hamcrest.BaseMatcher; diff --git a/infer/tests/utils/matchers/ResultContainsNoErrorInMethod.java b/infer/tests/utils/matchers/ResultContainsNoErrorInMethod.java index 25ad662c9..2e7356ad8 100644 --- a/infer/tests/utils/matchers/ResultContainsNoErrorInMethod.java +++ b/infer/tests/utils/matchers/ResultContainsNoErrorInMethod.java @@ -1,3 +1,12 @@ +/* +* Copyright (c) 2015 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. +*/ + package utils.matchers; import org.hamcrest.BaseMatcher; diff --git a/infer/tests/utils/matchers/ResultContainsNumberOfErrorsInMethod.java b/infer/tests/utils/matchers/ResultContainsNumberOfErrorsInMethod.java index ce4417363..2e5432270 100644 --- a/infer/tests/utils/matchers/ResultContainsNumberOfErrorsInMethod.java +++ b/infer/tests/utils/matchers/ResultContainsNumberOfErrorsInMethod.java @@ -1,3 +1,12 @@ +/* +* Copyright (c) 2015 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. +*/ + package utils.matchers; import org.hamcrest.BaseMatcher; diff --git a/infer/tests/utils/matchers/ResultContainsOnlyTheseErrors.java b/infer/tests/utils/matchers/ResultContainsOnlyTheseErrors.java index f560d2fcd..41aee6fa9 100644 --- a/infer/tests/utils/matchers/ResultContainsOnlyTheseErrors.java +++ b/infer/tests/utils/matchers/ResultContainsOnlyTheseErrors.java @@ -1,3 +1,12 @@ +/* +* Copyright (c) 2015 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. +*/ + package utils.matchers; import org.hamcrest.BaseMatcher; diff --git a/infer/tests/utils/matchers/ResultContainsTheseErrors.java b/infer/tests/utils/matchers/ResultContainsTheseErrors.java index b6e76c175..7cd4920d6 100644 --- a/infer/tests/utils/matchers/ResultContainsTheseErrors.java +++ b/infer/tests/utils/matchers/ResultContainsTheseErrors.java @@ -1,6 +1,10 @@ /* * Copyright (c) 2015 - present Facebook, Inc. * All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. */ package utils.matchers; diff --git a/infer/tests/utils/matchers/ResultContainsZeroErrorsInMethod.java b/infer/tests/utils/matchers/ResultContainsZeroErrorsInMethod.java index beaaae44d..e081b4279 100644 --- a/infer/tests/utils/matchers/ResultContainsZeroErrorsInMethod.java +++ b/infer/tests/utils/matchers/ResultContainsZeroErrorsInMethod.java @@ -1,3 +1,12 @@ +/* +* Copyright (c) 2015 - present Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. +*/ + package utils.matchers; import org.hamcrest.BaseMatcher; diff --git a/scripts/check_clang_plugin_version.sh b/scripts/check_clang_plugin_version.sh index b67fe77f1..b6abd9c11 100755 --- a/scripts/check_clang_plugin_version.sh +++ b/scripts/check_clang_plugin_version.sh @@ -1,8 +1,11 @@ #!/bin/bash +# Copyright (c) 2014 - present Facebook, Inc. +# All rights reserved. # -# Copyright (c) 2014 - Facebook. All rights reserved. -# +# This source code is licensed under the BSD style license found in the +# LICENSE file in the root directory of this source tree. An additional grant +# of patent rights can be found in the PATENTS file in the same directory. set -e diff --git a/scripts/create_binaries.sh b/scripts/create_binaries.sh index c12dc4a6d..04e13f812 100755 --- a/scripts/create_binaries.sh +++ b/scripts/create_binaries.sh @@ -1,7 +1,11 @@ #!/bin/bash -# Copyright 2013 - present Facebook. -# All Rights Reserved. +# Copyright (c) 2013 - present Facebook, Inc. +# All rights reserved. +# +# This source code is licensed under the BSD style license found in the +# LICENSE file in the root directory of this source tree. An additional grant +# of patent rights can be found in the PATENTS file in the same directory. set -x set -e diff --git a/scripts/test.sh b/scripts/test.sh index 25e65e8bb..082bd537d 100755 --- a/scripts/test.sh +++ b/scripts/test.sh @@ -1,7 +1,11 @@ #!/bin/bash -# Copyright 2013 - present Facebook. -# All Rights Reserved. +# Copyright (c) 2013 - present Facebook, Inc. +# All rights reserved. +# +# This source code is licensed under the BSD style license found in the +# LICENSE file in the root directory of this source tree. An additional grant +# of patent rights can be found in the PATENTS file in the same directory. set -e set -x diff --git a/update-fcp.sh b/update-fcp.sh index e50ba409a..156bfa558 100755 --- a/update-fcp.sh +++ b/update-fcp.sh @@ -1,4 +1,12 @@ #!/bin/bash + +# Copyright (c) 2015 - present Facebook, Inc. +# All rights reserved. +# +# This source code is licensed under the BSD style license found in the +# LICENSE file in the root directory of this source tree. An additional grant +# of patent rights can be found in the PATENTS file in the same directory. + set -x set -e