aboutsummaryrefslogtreecommitdiff
path: root/lib
AgeCommit message (Collapse)Author
2009-12-01Fix a code gen. crash synthesizing a destructor.Fariborz Jahanian
Fixes pr5660. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90283 91177308-0d34-0410-b5e6-96231b3b80d8
2009-12-01In SourceManager::isBeforeInTranslationUnit, if we are trying to compare two ↵Daniel Dunbar
source locations with no common ancestor in the include stack, determine order by assuming memory buffers preceed files, and then that FileIDs are created in order. The later assumption is patently false, but this was already broken -- this situation is conceptually impossible, my feeling is we should fix SourceManager and friends to make it impossible in practice as well. However, we need to fix PR5662 and perhaps some other things involving memory buffers first. In the short term I'm pretty sure this is reliable. Chris, Argiris, is this going to break anything that wasn't already broken? git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90280 91177308-0d34-0410-b5e6-96231b3b80d8
2009-12-01pass the reason for failure up from MemoryBuffer and report itChris Lattner
in diagnostics when we fail to open a file. This allows us to report things like: $ clang test.c -I. test.c:2:10: fatal error: error opening file './foo.h': Permission denied #include "foo.h" ^ git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90276 91177308-0d34-0410-b5e6-96231b3b80d8
2009-12-01Make EmitStoreOfScalar generate a more sane representation of boolean stores.Eli Friedman
"Fixes" PR5645. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90272 91177308-0d34-0410-b5e6-96231b3b80d8
2009-12-01Fix IsProvablyNotDerivedFrom to always use record definitions when available.John McCall
Gets clang-on-clang passing again. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90270 91177308-0d34-0410-b5e6-96231b3b80d8
2009-12-01Provide the correct vector size for referenced variables.Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90267 91177308-0d34-0410-b5e6-96231b3b80d8
2009-12-01Rework how we support C++ implicit member accesses. If we can resolve anJohn McCall
implicit member access to a specific declaration, go ahead and create it as a DeclRefExpr or a MemberExpr (with implicit CXXThisExpr base) as appropriate. Otherwise, create an UnresolvedMemberExpr or DependentScopeMemberExpr with a null base expression. By representing implicit accesses directly in the AST, we get the ability to correctly delay the decision about whether it's actually an instance member access or not until resolution is complete. This permits us to correctly avoid diagnosing the 'problem' of 'MyType::foo()' where the relationship to the type isn't really known until instantiation. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90266 91177308-0d34-0410-b5e6-96231b3b80d8
2009-12-01ASTUnit: Make sure to preserve the TargetInfo for later use.Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90263 91177308-0d34-0410-b5e6-96231b3b80d8
2009-12-01Add {ExternalSemaSource,SemaConsumer}::ForgetSema callback, and update PCHReaderDaniel Dunbar
to use it so it at least won't try to access Sema once it is gone. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90261 91177308-0d34-0410-b5e6-96231b3b80d8
2009-12-01Exit the command line into <built-in> instead of going directly from the ↵Rafael Espindola
command line to the input file. We passed <built-in> on the way in, so we should pass it again on the way out. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90250 91177308-0d34-0410-b5e6-96231b3b80d8
2009-12-01(objc2 nonfragile-abi specific). If the translation unit includes an ↵Fariborz Jahanian
implementation of a subclass (direct or indirect) of a weak_import root class, emit a weak reference for the root class's metaclass (should complete radar 6815425). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90249 91177308-0d34-0410-b5e6-96231b3b80d8
2009-12-01Fix early-return logic in scanReachableSymbols() to match the rest of the ↵Ted Kremenek
recursive logic in the methods of ScanReachableSymbols. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90245 91177308-0d34-0410-b5e6-96231b3b80d8
2009-12-01Convert Diagnostic::getCustomDiagID to take a StringRef.Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90244 91177308-0d34-0410-b5e6-96231b3b80d8
2009-12-01Funtion templates and function template specializations do notDouglas Gregor
override virtual functions. Also, eliminate a (now redundant) call to AddOverriddenMethods. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90242 91177308-0d34-0410-b5e6-96231b3b80d8
2009-12-01Move the checking of overridden virtual functions into the code pathDouglas Gregor
common to both parsing and template instantiation, so that we'll find overridden virtuals for member functions of class templates when they are instantiated. Additionally, factor out the checking for pure virtual functions, so that it will be executed both at parsing time and at template instantiation time. These changes fix PR5656 (for real), although one more tweak w.r.t. member function templates will be coming along shortly. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90241 91177308-0d34-0410-b5e6-96231b3b80d8
2009-12-01Don't automatically assume that an id-expression refers to aDouglas Gregor
ValueDecl, because that isn't always the case in ill-formed code. Diagnose a common mistake (forgetting to provide a template argument list for a class template, PR5655) and dyn_cast so that we handle the general problem of referring to a non-value declaration gracefully. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90239 91177308-0d34-0410-b5e6-96231b3b80d8
2009-12-01An inherited virtual (where "virtual" wasn't written explicitly) canDouglas Gregor
be defined as pure. Fixes PR5656. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90237 91177308-0d34-0410-b5e6-96231b3b80d8
2009-12-01Add ASTUnit::LoadFromCompilerInvocation, which does what it says.Daniel Dunbar
Also, add an -ast-from-source option to index-test which allows index-test to run on source files directly. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90223 91177308-0d34-0410-b5e6-96231b3b80d8
2009-12-01Switch the clang-to-CIndex interface for code-completion to a binary format, ↵Douglas Gregor
for a massive speedup git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90209 91177308-0d34-0410-b5e6-96231b3b80d8
2009-12-01Update for llvm intrinsics change.Eric Christopher
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90208 91177308-0d34-0410-b5e6-96231b3b80d8
2009-12-01Much work on try/catch statement. WIP.Mike Stump
Highlights include: Fix __cxa_begin_catch so it now returns a value. Added getUnwindResumeOrRethrowFn helper to build up calls to _Unwind_Resume_or_Rethrow. Broke out object copying code into CopyObject from EmitCXXThrowExpr. Built up another version of CopyObject that can copy from memory for use in the catch parameter code. RTTI generation for type matching for catch. Code to check for the type match for catch. Code to generate the catch parameter, WIP, need make sure references and pointers and copy ctors work. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90205 91177308-0d34-0410-b5e6-96231b3b80d8
2009-12-01Eliminate warning in Release-Asserts mode. No functionality changeDouglas Gregor
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90204 91177308-0d34-0410-b5e6-96231b3b80d8
2009-12-01clang -cc1: Move CompilerInvocation deserialization into CompilerInvocation.cpp,Daniel Dunbar
where it belongs. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90198 91177308-0d34-0410-b5e6-96231b3b80d8
2009-12-01Allocate MultipleDC objects using the allocator associated withTed Kremenek
ASTContext instead of malloc. Besides reducing malloc traffic, this also removes a source of memory leaks when using a BumpPtrAllocator for the allocator of ASTContext. There are still leaks when using MallocAllocator because Decl::Destroy() isn't fully finished. Fixes: <rdar://problem/7431556> git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90174 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-30Fix and test for a problem caught by the clang-on-clang buildbot: qualifiedJohn McCall
IDs in dependent contexts are not dependent if the context names a namespace. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90171 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-30Have ASTRecordLayout keep track of the key function, in preparation of ↵Anders Carlsson
fixing a synthetic ctor/dtor bug. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90168 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-30Remove all of Sema's explicit uses of OverloadedFunctionDecl except forJohn McCall
those associated with TemplateNames. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90162 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-30Eliminate the use of OverloadedFunctionDecl in member expressions.John McCall
Create a new UnresolvedMemberExpr for these lookups. Assorted hackery around qualified member expressions; this will all go away when we implement the correct (i.e. extremely delayed) implicit-member semantics. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90161 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-30More support for virtual destructor calls.Fariborz Jahanian
Fixes pr5619 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90158 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-30When we're trying to define an implicit virtual destructor, make sure that ↵Anders Carlsson
we have a valid delete operator. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90156 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-30Add const to accessors that don't modify the object.Mike Stump
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90153 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-30Reflow comments and fix 80-col violation.Mike Stump
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90152 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-30Fix an assert.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90149 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-30Fix a crash when ivar type is a __strong SEL. Fallout fromFariborz Jahanian
recent change to make SEL a builtin type (fixes radar 7425510). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90145 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-30Use StringRef in Attr constructors.Benjamin Kramer
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90140 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-30Eliminate another VISIBILITY_HIDDENDouglas Gregor
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90139 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-30Adapt to the DOTGraphTraits changes in LLVM.Tobias Grosser
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90137 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-30Add CodeGenOptions::{SoftFloat,FloatABI}, and update the all the (far too ↵Daniel Dunbar
many) places to use this instead of using the backend -soft-float and -float-abi= options. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90127 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-30clang -cc1: Fix initialization of PreprocessorOptions::TokenCache.Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90126 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-30Add TextDiagnosticBuffer::FlushDiagnostics, for forwarding the buffered ↵Daniel Dunbar
diagnostics to a different diagnostics engine. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90125 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-30clang -cc1: Fix -include-pch now that the test code is in clang-cc.Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90124 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-30clang -cc1: Initialize LangOptions::{Optimize,NoInline}Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90123 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-30Always pass -fmessage-length using separate arguments.Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90121 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-30clang -cc1: Initialize LangOptions::DollarIdents correctly.Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90120 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-30Don't try to generate common globals for C++ files, instead of depending on ↵Daniel Dunbar
the FE to set NoCommon, and simplify CodeGenOptions initialization. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90119 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-30Eliminate CodeGenOptions::TimePasses.Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90118 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-30Eliminate CodeGenOptions::SimplifyLibCalls.Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90117 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-30Fix PR5633 by making the preprocessor handle the case where we canChris Lattner
stat a file but where mmaping it fails. In this case, we emit an error like: t.c:1:10: fatal error: error opening file '../../foo.h' instead of "cannot find file". git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90110 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-30Minor cleanup (no functionality change).Eli Friedman
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90105 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-29clang -cc1: Use proper diagnostics for all parsing errors.Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90100 91177308-0d34-0410-b5e6-96231b3b80d8