aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2011-12-02Add missing test headerDouglas Gregor
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145710 91177308-0d34-0410-b5e6-96231b3b80d8
2011-12-02Only perform checking of the predefines buffer when loading aDouglas Gregor
precompiled header. Previously, we were trying to gather predefines buffers from all kinds of AST files (which doesn't make sense) and were performing some validation when AST files were loaded as main files. With these tweaks, using PCH files that import modules no longer fails immediately (due to mismatched predefines buffers). However, module visibility is lost, so this feature does not yet work. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145709 91177308-0d34-0410-b5e6-96231b3b80d8
2011-12-02Make r145697 actually work.Hans Wennborg
Use the canonical type of the typedef to compare with the underlying type. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145702 91177308-0d34-0410-b5e6-96231b3b80d8
2011-12-02Make sure that name lookup in C checks whether a name is hidden.Douglas Gregor
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145700 91177308-0d34-0410-b5e6-96231b3b80d8
2011-12-02Make conversion specifier warning refer to typedef if possible.Hans Wennborg
For example, the warning for printf("%zu", 42.0); changes from "conversion specifies type 'unsigned long'" to "conversion specifies type 'size_t' (aka 'unsigned long')" git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145697 91177308-0d34-0410-b5e6-96231b3b80d8
2011-12-02When making a module visible, also make any of its exported modulesDouglas Gregor
visible, allowing one to create modules that import (and then re-export) other modules. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145696 91177308-0d34-0410-b5e6-96231b3b80d8
2011-12-02Implement (de-)serialization of the set of exported modules in aDouglas Gregor
module map. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145695 91177308-0d34-0410-b5e6-96231b3b80d8
2011-12-02Notify the AST writer (via ASTDeserializationListener) when aDouglas Gregor
(sub)module is read from an AST file. This makes sure that the AST writer knows how to map all modules to their global IDs. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145685 91177308-0d34-0410-b5e6-96231b3b80d8
2011-12-02Implement name hiding for macro definitions within modules, such thatDouglas Gregor
only the macro definitions from visible (sub)modules will actually be visible. This provides the same behavior for macros that r145640 provided for declarations. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145683 91177308-0d34-0410-b5e6-96231b3b80d8
2011-12-02Fix bitfield handling for record layout with #pragma pack. ↵Eli Friedman
<rdar://problem/10494810> and PR9560. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145673 91177308-0d34-0410-b5e6-96231b3b80d8
2011-12-02runtime/Linux: Initial support for tying compiler-rt build into Clang build onDaniel Dunbar
Linux. - Currently just builds a full library, and only on x86, and only for the target arch. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145672 91177308-0d34-0410-b5e6-96231b3b80d8
2011-12-02Add support for AVX registers to clang inline asm. Add a small testcaseEric Christopher
and update the Sema testcase with a register that we won't hit for a while I hope. Fixes rdar://10510405 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145671 91177308-0d34-0410-b5e6-96231b3b80d8
2011-12-02Clean up some oddly gratuitous vertical whitespace.Eric Christopher
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145670 91177308-0d34-0410-b5e6-96231b3b80d8
2011-12-02Rename function.Eric Christopher
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145669 91177308-0d34-0410-b5e6-96231b3b80d8
2011-12-02Implementing parsing and resolution of module export declarationsDouglas Gregor
within module maps, which will (eventually) be used to re-export a module from another module. There are still some pieces missing, however. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145665 91177308-0d34-0410-b5e6-96231b3b80d8
2011-12-02Fix test regression introduced by r145656. When seeing a string literal ↵Ted Kremenek
that isn't accepted by 'asm', skip to the enclosing ')'. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145662 91177308-0d34-0410-b5e6-96231b3b80d8
2011-12-02Diagnose use of wide string literal in 'asm' instead of crashing. Fixes ↵Ted Kremenek
<rdar://problem/10465079>. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145656 91177308-0d34-0410-b5e6-96231b3b80d8
2011-12-02Fix wrong-code bug when a const automatic variable of struct type has both aRichard Smith
mutable member and a constant initializer. We'd previously promoted such variables to global constants, resulting in nasal demons if the mutable member was modified. This is only a temporary fix. The subtle interplay between isConstantInitializer and CGExprConstant is very bug-prone; there are some other issues in this area which I will be addressing in subsequent, more major reworking of this code. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145654 91177308-0d34-0410-b5e6-96231b3b80d8
2011-12-02[asan] update docs to allow, but discourage, -O0Kostya Serebryany
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145653 91177308-0d34-0410-b5e6-96231b3b80d8
2011-12-02When we're passing a vector with an illegal type through memory on x86-64, ↵Eli Friedman
use byval so we're sure the backend does the right thing. Fixes va_arg with illegal vectors and an obscure ABI mismatch with __m64 vectors. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145652 91177308-0d34-0410-b5e6-96231b3b80d8
2011-12-01Driver/Darwin: Add ASAN runtime library link support.Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145651 91177308-0d34-0410-b5e6-96231b3b80d8
2011-12-01Implement name hiding for declarations deserialized from a non-visibleDouglas Gregor
module. When that module becomes visible, so do those declarations. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145640 91177308-0d34-0410-b5e6-96231b3b80d8
2011-12-01Fix -forwardingTargetForSelector: (GNUstep runtime) which was broken for theDavid Chisnall
old dispatch mechanism when I introduced the new one. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145609 91177308-0d34-0410-b5e6-96231b3b80d8
2011-12-01Add support for AMD's bulldozer.Benjamin Kramer
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145606 91177308-0d34-0410-b5e6-96231b3b80d8
2011-12-01Introduce the notion of name visibility into modules. For a givenDouglas Gregor
(sub)module, all of the names may be hidden, just the macro names may be exposed (for example, after the preprocessor has seen the import of the module but the parser has not), or all of the names may be exposed. Importing a module makes its names, and the names in any of its non-explicit submodules, visible to name lookup (transitively). This commit only introduces the notion of name visible and marks modules and submodules as visible when they are imported. The actual name-hiding logic in the AST reader will follow (along with test cases). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145586 91177308-0d34-0410-b5e6-96231b3b80d8
2011-12-01[analyzer] Make KeychainAPI checker less aggressive. radar://10508828Anna Zaks
We trigger an error if free is called after a possibly failed allocation. Do not trigger the error if we know that the buffer is not null. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145584 91177308-0d34-0410-b5e6-96231b3b80d8
2011-12-01When typo-correction an Objective-C superclass name, don'tDouglas Gregor
typo-correct to ourselves. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145583 91177308-0d34-0410-b5e6-96231b3b80d8
2011-12-01Add Microsoft mangling of constructors and destructors. Patch by Dmitry!Michael J. Spencer
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145581 91177308-0d34-0410-b5e6-96231b3b80d8
2011-12-01Change the Microsoft __interface keyword to be an alias for struct (not ↵Francois Pichet
class) since members are public by default. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145580 91177308-0d34-0410-b5e6-96231b3b80d8
2011-12-01Fix typo.Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145577 91177308-0d34-0410-b5e6-96231b3b80d8
2011-12-01[analyzer] Refactor checkers to use helper function for getting callee Decl ↵Anna Zaks
and name. We are getting name of the called function or it's declaration in a few checkers. Refactor them to use the helper function in the CheckerContext. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145576 91177308-0d34-0410-b5e6-96231b3b80d8
2011-12-01When analyzing a C++ method (without a specific caller), assume 'this' is ↵Ted Kremenek
non-null. Fixes <rdar://problem/10508787>. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145575 91177308-0d34-0410-b5e6-96231b3b80d8
2011-12-01Don't use a varargs convention for calls unprototyped functions where one of ↵Eli Friedman
the arguments is an AVX vector. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145574 91177308-0d34-0410-b5e6-96231b3b80d8
2011-12-01[libclang] Create a diagnostic set to pass at the end of indexing.Argyrios Kyrtzidis
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145557 91177308-0d34-0410-b5e6-96231b3b80d8
2011-12-01Infer the submodule ID for a given declaration based on the locationDouglas Gregor
of that declaration, and encode the submodule ID in each declaration stored in an AST file. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145555 91177308-0d34-0410-b5e6-96231b3b80d8
2011-12-01When sending a message to a receiver that has "unknown any" type,Douglas Gregor
force the unknown any type to "id" so that the message send can be completed without requiring a case. Fixes <rdar://problem/10506646>. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145552 91177308-0d34-0410-b5e6-96231b3b80d8
2011-12-01ParmVarDecls have no linkage. Previously we would report that parametersArgyrios Kyrtzidis
in type signatures have external linkage. Fixes rdar://10058317. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145551 91177308-0d34-0410-b5e6-96231b3b80d8
2011-12-01Switch the ID numbers used for submodule IDs in the AST reader over toDouglas Gregor
a standard global/local scheme, so that submodule definitions will eventually be able to refer to submodules in other top-level modules. We'll need this functionality soonish. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145549 91177308-0d34-0410-b5e6-96231b3b80d8
2011-12-01Specially whitelist the selector 'addOperationWithBlock:' for the ↵Ted Kremenek
retain-cycle checking in -Warc-retain-cycles. This commonly is hit by users using NSOperationQueue. Fixes <rdar://problem/10465721>. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145548 91177308-0d34-0410-b5e6-96231b3b80d8
2011-12-01Further tweak -Wurneachable-code and templates by allowing the warning to run onTed Kremenek
explicit template specializations (which represent actual functions somebody wrote). Along the way, refactor some other code which similarly cares about whether or not they are looking at a template instantiation. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145547 91177308-0d34-0410-b5e6-96231b3b80d8
2011-12-01Fix MSVC class layout for empty classes. Patch by Dmitry Sokolov.Eli Friedman
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145544 91177308-0d34-0410-b5e6-96231b3b80d8
2011-11-30Another GCC fixDouglas Gregor
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145542 91177308-0d34-0410-b5e6-96231b3b80d8
2011-11-30Revert most of r145372 for now. Lookahead beyond the ';' in a functionRichard Smith
declaration tickles a bug in the way we handle visibility pragmas. The improvement to error recovery for template function definitions declared with the 'typedef' specifier in r145372 is unrelated and not reverted here. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145541 91177308-0d34-0410-b5e6-96231b3b80d8
2011-11-30Unbreak build with GCC. Clang is too lame to diagnose this particular ↵Douglas Gregor
ill-formedness git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145539 91177308-0d34-0410-b5e6-96231b3b80d8
2011-11-30Promote ModuleMap::Module to a namespace-scope class in the BasicDouglas Gregor
library, since modules cut across all of the libraries. Rename serialization::Module to serialization::ModuleFile to side-step the annoying naming conflict. Prune a bunch of ModuleMap.h includes that are no longer needed (most files only needed the Module type). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145538 91177308-0d34-0410-b5e6-96231b3b80d8
2011-11-30[PCH] In ASTReader::FinishedDeserializing, after we do ↵Argyrios Kyrtzidis
PassInterestingDeclsToConsumer we may end up having added more pending stuff to do, so go in a loop until everything is cleared out. This fixes the error in rdar://10278815 which has a certain David Lynch-esque quality.. error: unknown type name 'BOOL'; did you mean 'BOOL'? git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145536 91177308-0d34-0410-b5e6-96231b3b80d8
2011-11-30Test case for fix committed in r145441.Lang Hames
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145534 91177308-0d34-0410-b5e6-96231b3b80d8
2011-11-30make asan work at -O0, clang part. Patch by glider@google.comKostya Serebryany
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145531 91177308-0d34-0410-b5e6-96231b3b80d8
2011-11-30Per an offline conversation with John McCall, have StmtPrinter actually ↵Ted Kremenek
print out the source expression for OpaqueValueExpr. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145524 91177308-0d34-0410-b5e6-96231b3b80d8
2011-11-30Don't run -Wunreachable-code on template instantiations. Different ↵Ted Kremenek
instantiations may produce different unreachable code results, and it is very difficult for us to prove that ALL instantiations of a template have specific unreachable code. If we come up with a better solution, then we can revisit this, but this approach will at least greatly reduce the noise of this warning for code that makes use of templates. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145520 91177308-0d34-0410-b5e6-96231b3b80d8