summaryrefslogtreecommitdiffstats
path: root/clang
Commit message (Collapse)AuthorAgeFilesLines
* Look through array types when deciding whether a field requires non-trivialJohn McCall2011-02-134-5/+49
| | | | | | destruction in the destructor-aliases logic. Fixes PR 9197. llvm-svn: 125447
* Implement objective-c++'s block pointer type matching involvingFariborz Jahanian2011-02-127-2/+194
| | | | | | | types which are contravariance in argument types and covariance in return types. // rdar://8979379. llvm-svn: 125445
* Teach the IdempotentOperations checker to ignore property setters.Ted Kremenek2011-02-122-4/+19
| | | | llvm-svn: 125443
* When reading the AST, delay loading of the redeclaration chain to avoid ↵Argyrios Kyrtzidis2011-02-125-12/+181
| | | | | | | | | | | deeply nested calls. Temporarily set the first (canonical) declaration as the previous one, which is the one that matters, and mark the real previous DeclID to be loaded & attached later on. Fixes rdar://8956193. llvm-svn: 125434
* Update static analyzer build to checker-255.Ted Kremenek2011-02-123-2/+15
| | | | llvm-svn: 125432
* Weaken the ObjCSelfInitChecker to only warn when one calls an 'init' method ↵Ted Kremenek2011-02-123-13/+41
| | | | | | within an 'init' method. This is a temporary stop gap to avoid false positives while we investigate how to make it smarter. llvm-svn: 125427
* Add test case for <rdar://problem/6888289>.Ted Kremenek2011-02-121-0/+38
| | | | llvm-svn: 125424
* static analyzer: Also invalidate instance variables of a receiver in a ↵Ted Kremenek2011-02-122-0/+46
| | | | | | | | message expression, just as we do with parameters. Fixes <rdar://problem/8725041>. llvm-svn: 125422
* Don't emit a dead store for '++' operations unless it occurs with a return ↵Ted Kremenek2011-02-125-12/+26
| | | | | | | | statement. We've never seen any other cases that were real bugs. Fixes <rdar://problem/6962292>. llvm-svn: 125419
* Add CMake dependencies so that LLVM_USED_LIBS order doesn't matter.Jeffrey Yasskin2011-02-118-14/+31
| | | | | | | I also sorted the tools/driver dependencies since their order no longer matters. llvm-svn: 125417
* Don't report dead stores on unreachable code paths. Fixes ↵Ted Kremenek2011-02-117-15/+117
| | | | | | <rdar://problem/8405222>. llvm-svn: 125415
* Uses llvm::sys::path instead of hand-rolled algorithm in FileManager.Zhanyong Wan2011-02-111-32/+11
| | | | | | Reviewed by dgregor. llvm-svn: 125407
* Add test case for PR 8646.Ted Kremenek2011-02-111-3/+24
| | | | llvm-svn: 125401
* Reject forbidden storage class specifiers in OpenCL. Patch by George Russell!Peter Collingbourne2011-02-117-12/+43
| | | | llvm-svn: 125399
* Remove RegionStoreManager::evalBinOp(), which is now handled by the SValBuilder.Ted Kremenek2011-02-111-119/+0
| | | | llvm-svn: 125396
* Rename 'InvalidateRegions()' to 'invalidateRegions()'.Ted Kremenek2011-02-1111-40/+38
| | | | llvm-svn: 125395
* Rename the operation that loads a preprocessed entity from a given offset to ↵Douglas Gregor2011-02-114-5/+7
| | | | | | indicate that we're loading from an offset, not an index, lest one be confused. No functionality change. llvm-svn: 125394
* Fix a block sema bug where result type of initializerFariborz Jahanian2011-02-114-5/+23
| | | | | | | | | is unqualified but its initialized is qualified. This is for c only and fixes the imm. problem. c++ is more involved and is wip. // rdar://8979379 llvm-svn: 125386
* Improves Clang's virtual file handling.Zhanyong Wan2011-02-115-109/+421
| | | | | | | | | | | | | | | | | | | | | | | This patch contains: - making some of the existing comments more accurate in the presence of virtual files/directories. - renaming some private data members of FileManager to match their roles better. - creating 'DirectorEntry's for the parent directories of virtual files, such that we can tell whether two virtual files are from the same directory. This is useful for injecting virtual files whose directories don't exist in the real file system. - minor clean-ups and adding comments for class FileManager::UniqueDirContainer and FileManager::UniqueFileContainer. - adding statistics on virtual files to FileManager::PrintStats(). - adding unit tests to verify the existing and new behavior of FileManager. llvm-svn: 125384
* Don't compare llvm::Optional<> objects directly; compare theirDouglas Gregor2011-02-111-8/+14
| | | | | | contents when it's safe. I just *love* C++ some days. llvm-svn: 125378
* InitHeaderSearch.cpp: [PR8298] Don't touch drive G: on Windows hosts!NAKAMURA Takumi2011-02-111-6/+0
| | | | llvm-svn: 125364
* Allow the 'Eng' entry in GRStateManager to be a (possibly null) pointer ↵Ted Kremenek2011-02-112-12/+27
| | | | | | instead of a reference. llvm-svn: 125362
* For consistency, use llvm::raw_ostream in the rest of the mangle api.Rafael Espindola2011-02-1110-82/+89
| | | | llvm-svn: 125360
* Convert RecordLayout::DataSize to CharUnits from bits, eliminating twoKen Dyck2011-02-114-15/+16
| | | | | | | unnecessary calls to RoundUpToAlignment. No changes to functionality intended. llvm-svn: 125356
* Add a helper function, ASTContext::toBits(), that converts sizes inKen Dyck2011-02-116-27/+22
| | | | | | | CharUnits to sizes in bits, and use it to tidy up the places where the conversion was done explicitly. llvm-svn: 125332
* Use raw_ostream instead of raw_svector_ostream.Rafael Espindola2011-02-114-33/+33
| | | | llvm-svn: 125330
* build/compiler-rt: Fake Clang into using the right assembler to build the ARMDaniel Dunbar2011-02-111-1/+11
| | | | | | bits for the runtime libraries. llvm-svn: 125328
* Eliminate a major performance problem with chained PCH, where we wereDouglas Gregor2011-02-111-4/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | causing the deserialization of a large number of declarations when writing the visible-updates record for the translation unit in C. This takes us from: *** AST File Statistics: 2 stat cache hits 6 stat cache misses 1/64463 source location entries read (0.001551%) 15606/16956 types read (92.038216%) 59266/89334 declarations read (66.342041%) 38952/61393 identifiers read (63.446976%) 0/7778 selectors read (0.000000%) 24192/34644 statements read (69.830276%) 388/8809 macros read (4.404586%) 2095/5189 lexical declcontexts read (40.373867%) 0/4587 visible declcontexts read (0.000000%) 0/7716 method pool entries read (0.000000%) 0 method pool misses to *** AST File Statistics: 2 stat cache hits 6 stat cache misses 1/64463 source location entries read (0.001551%) 26/16956 types read (0.153338%) 18/89334 declarations read (0.020149%) 145/61393 identifiers read (0.236183%) 0/7778 selectors read (0.000000%) 21/34644 statements read (0.060617%) 0/8809 macros read (0.000000%) 0/5189 lexical declcontexts read (0.000000%) 0/4587 visible declcontexts read (0.000000%) 0/7716 method pool entries read (0.000000%) 0 method pool misses when generating a chained PCH for a header that #includes Cocoa.h (from a PCH file) and adds one simple function declaration. The generated PCH file is now only 9580 bytes (down from > 2MB). llvm-svn: 125326
* Implement AST/PCH chaining support for macro definitions. Previously,Douglas Gregor2011-02-113-3/+22
| | | | | | | | | | | | | | we would deserialize all of the macro definitions we knew about while serializing the macro definitions at the end of the AST/PCH file. Even though we skipped most of them (since they were unchanged), it's still a performance problem. Now, we do the standard AST/PCH chaining trick: watch what identifiers are deserialized as macro names, and consider only those identifiers (along with macro definitions that have been deserialized/written in the source) when serializing the preprocessor state. llvm-svn: 125324
* Use raw_svector_ostream in more places in the mangler.Rafael Espindola2011-02-105-72/+88
| | | | llvm-svn: 125321
* Add braces to quiet a gcc warning.Matt Beaumont-Gay2011-02-101-1/+2
| | | | llvm-svn: 125309
* Fix think-o I committed without testing, shameful.Daniel Dunbar2011-02-101-1/+1
| | | | llvm-svn: 125299
* Fix a gcc Wuninitialized false positive.Daniel Dunbar2011-02-101-1/+1
| | | | llvm-svn: 125298
* When we're writing macro definitions to an AST/PCH File, sort theDouglas Gregor2011-02-102-7/+29
| | | | | | | macro definitions by macro name first. That way, we'll get a stable ordering in the AST/PCH file. llvm-svn: 125297
* For -Woverloaded-virtual take into account canonical methods. Fixes ↵Argyrios Kyrtzidis2011-02-102-2/+16
| | | | | | rdar://8979966 & http://llvm.org/PR9182. llvm-svn: 125296
* Fix family-friendly-o, tsk tsk.Daniel Dunbar2011-02-101-1/+1
| | | | llvm-svn: 125293
* IRgen: Fix an immediate-exit-from-fn style nit.Daniel Dunbar2011-02-101-5/+4
| | | | llvm-svn: 125289
* Implement two related optimizations that make de-serialization ofDouglas Gregor2011-02-1010-49/+393
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | AST/PCH files more lazy: - Don't preload all of the file source-location entries when reading the AST file. Instead, load them lazily, when needed. - Only look up header-search information (whether a header was already #import'd, how many times it's been included, etc.) when it's needed by the preprocessor, rather than pre-populating it. Previously, we would pre-load all of the file source-location entries, which also populated the header-search information structure. This was a relatively minor performance issue, since we would end up stat()'ing all of the headers stored within a AST/PCH file when the AST/PCH file was loaded. In the normal PCH use case, the stat()s were cached, so the cost--of preloading ~860 source-location entries in the Cocoa.h case---was relatively low. However, the recent optimization that replaced stat+open with open+fstat turned this into a major problem, since the preloading of source-location entries would now end up opening those files. Worse, those files wouldn't be closed until the file manager was destroyed, so just opening a Cocoa.h PCH file would hold on to ~860 file descriptors, and it was easy to blow through the process's limit on the number of open file descriptors. By eliminating the preloading of these files, we neither open nor stat the headers stored in the PCH/AST file until they're actually needed for something. Concretely, we went from *** HeaderSearch Stats: 835 files tracked. 364 #import/#pragma once files. 823 included exactly once. 6 max times a file is included. 3 #include/#include_next/#import. 0 #includes skipped due to the multi-include optimization. 1 framework lookups. 0 subframework lookups. *** Source Manager Stats: 835 files mapped, 3 mem buffers mapped. 37460 SLocEntry's allocated, 11215575B of Sloc address space used. 62 bytes of files mapped, 0 files with line #'s computed. with a trivial program that uses a chained PCH including a Cocoa PCH to *** HeaderSearch Stats: 4 files tracked. 1 #import/#pragma once files. 3 included exactly once. 2 max times a file is included. 3 #include/#include_next/#import. 0 #includes skipped due to the multi-include optimization. 1 framework lookups. 0 subframework lookups. *** Source Manager Stats: 3 files mapped, 3 mem buffers mapped. 37460 SLocEntry's allocated, 11215575B of Sloc address space used. 62 bytes of files mapped, 0 files with line #'s computed. for the same program. llvm-svn: 125286
* Adjust the object files to be linked in when mcount profilingRoman Divacky2011-02-101-7/+33
| | | | | | is specified in the FreeBSD linker driver. llvm-svn: 125285
* Add a testcase for the mcount profiling.Roman Divacky2011-02-101-0/+4
| | | | llvm-svn: 125283
* Implement mcount profiling, enabled via -pg.Roman Divacky2011-02-109-7/+50
| | | | llvm-svn: 125282
* Drop the 'InBits' part from the name of RecordSizeInBits as the value is inKen Dyck2011-02-101-5/+5
| | | | | | character units. llvm-svn: 125281
* Eliminate some signed-to-unsigned comparision warnings introduced inKen Dyck2011-02-101-2/+4
| | | | | | r125156. llvm-svn: 125280
* CMake: LLVM_NO_RTTI must be obsolete now!NAKAMURA Takumi2011-02-1021-42/+0
| | | | llvm-svn: 125275
* Move the check that gives functions with unique-external types unique-externalJohn McCall2011-02-104-5/+33
| | | | | | | linkage into Decl.cpp. Disable this logic for extern "C" functions, because the operative rule there is weaker. Fixes rdar://problem/8898466 llvm-svn: 125268
* Run ~GRState() when reclaiming GRStates.Ted Kremenek2011-02-101-0/+1
| | | | llvm-svn: 125262
* static analyzer: Make GRStates reference counted, with reference counts ↵Ted Kremenek2011-02-103-16/+28
| | | | | | | | managed by ExplodedNodes. This reduces memory usage of the analyzer on sqlite by another 5%. llvm-svn: 125260
* Add hack to CMakeLists.txt so that StaticAnalyzer libraries find their ↵Ted Kremenek2011-02-101-0/+3
| | | | | | | | | | corresponding headers. This is a hack because we really should only search in the 'include/clang/StaticAnalyzer' directory if we are in 'lib/StaticAnalyzer'. My CMake knowledge is limited, so I appeal to anyone with more expertise. llvm-svn: 125252
* Split 'include/clang/StaticAnalyzer' into ↵Ted Kremenek2011-02-10116-260/+260
| | | | | | | | 'include/clang/StaticAnalyzer/Core' and 'include/clang/StaticAnalyzer/Checkers'. This layout matches lib/StaticAnalyzer, which corresponds to two StaticAnalyzer libraries. llvm-svn: 125251
* If an aggregate is returned as 'sret' argument then let debugger know about ↵Devang Patel2011-02-101-0/+6
| | | | | | this. llvm-svn: 125249
OpenPOWER on IntegriCloud