aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2010-08-23Don't call this field 'Expr', it changes lookup in illegal ways thatJohn McCall
GCC diagnoses. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111865 91177308-0d34-0410-b5e6-96231b3b80d8
2010-08-23Kill off ExprArg (now just Expr*) and StmtArg (now just Stmt*).John McCall
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111863 91177308-0d34-0410-b5e6-96231b3b80d8
2010-08-23Introduce new libclang API functions that determine the availabilityDouglas Gregor
of a cursor or code-completion result, e.g., whether that result refers to an unavailable, deleted, or deprecated declaration. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111858 91177308-0d34-0410-b5e6-96231b3b80d8
2010-08-23Handling remaining rule for synthesize bitfields inFariborz Jahanian
class extensions (nonfragile-abi2).For every class @interface and class extension @interface, if the last ivar is a bitfield of any type, then add an implicit `char :0` ivar to the end of that interface. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111857 91177308-0d34-0410-b5e6-96231b3b80d8
2010-08-23Driver: Move Clang "triple" computation routines to method on theDaniel Dunbar
ToolChain. This fixes a potenial bad cast when running Clang on PPC code, since the tool chain in effect is not a subclass of the Darwin one, but we were treating it like it was. - This introduces some gross code duplication, but the right fix for it is to just move the Driver to start depending on the targets in libBasic, so I am not planning on fixing it immediately. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111856 91177308-0d34-0410-b5e6-96231b3b80d8
2010-08-23libclang: Print more information when recovering from crashes inDaniel Dunbar
clang_parseTranslationUnit. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111855 91177308-0d34-0410-b5e6-96231b3b80d8
2010-08-23Emit debug info for enum constants.Devang Patel
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111852 91177308-0d34-0410-b5e6-96231b3b80d8
2010-08-23Include __FUNCTION__, __PRETTY_FUNCTION_, __func__ in code-completionDouglas Gregor
results for expression contexts within a function. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111851 91177308-0d34-0410-b5e6-96231b3b80d8
2010-08-23Introduce a code-completion hook for the Objective-C collectionDouglas Gregor
argument in a for-each statement (e.g., "for (id x in <blah>)"), which restricts the expression completions provided to Objective-C types (or class types in C++). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111843 91177308-0d34-0410-b5e6-96231b3b80d8
2010-08-23Reinstate the code for emitting an initial debug type for a struct,Dan Gohman
to handle the case where the struct is only forward-declared. In this case, a temporary MDNode is not needed and not desired. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111842 91177308-0d34-0410-b5e6-96231b3b80d8
2010-08-23Driver/Darwin: Switch to using simplified tool chain by default -- what betterDaniel Dunbar
way to see what will break! :) git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111840 91177308-0d34-0410-b5e6-96231b3b80d8
2010-08-23Driver/Darwin: When using the simplified Clang toolchain, make sure to also passDaniel Dunbar
the arch specific gcc lib path. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111839 91177308-0d34-0410-b5e6-96231b3b80d8
2010-08-23Driver: Update -ccc-install-dir to also set the installed dir. TotallyDaniel Dunbar
non-obvious. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111838 91177308-0d34-0410-b5e6-96231b3b80d8
2010-08-23Modified pseudoconstant test case to make it a bit clearer and fix a missing ↵Tom Care
line git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111833 91177308-0d34-0410-b5e6-96231b3b80d8
2010-08-23Several small changes to PseudoConstantAnalysis and the way ↵Tom Care
IdempotentOperationChecker uses it. - Psuedo -> Pseudo (doh...) - C++ reference support - Added pseudoconstant test case for __block vars - Separated out static local checking from pseudoconstant analysis and generalized to non-local checking - Added missing test cases for storage false positives git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111832 91177308-0d34-0410-b5e6-96231b3b80d8
2010-08-23Don't include macro results when we're completing a declarator.Douglas Gregor
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111830 91177308-0d34-0410-b5e6-96231b3b80d8
2010-08-23Support for IRGen of synthesize bitfield ivars inFariborz Jahanian
objc-nonfragile-abi2 (radar 7824380). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111823 91177308-0d34-0410-b5e6-96231b3b80d8
2010-08-23test case for PR7920.Devang Patel
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111821 91177308-0d34-0410-b5e6-96231b3b80d8
2010-08-23Introduce a new code-completion point when we're parsing aDouglas Gregor
declarator. Here, we can only see a few things (e.g., cvr-qualifiers, nested name specifiers) and we do not want to provide other non-macro completions. Previously, we would end up in recovery mode and would provide a large number of non-relevant completions. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111818 91177308-0d34-0410-b5e6-96231b3b80d8
2010-08-23Emit an error noting that Clang does not support code generation forDouglas Gregor
the ternary operator without a left-hand side in C++ (PR7726), from Jean-Daniel Dupas! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111809 91177308-0d34-0410-b5e6-96231b3b80d8
2010-08-23Add XML for CXXConstructExpr, from Benoit Belley!Douglas Gregor
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111808 91177308-0d34-0410-b5e6-96231b3b80d8
2010-08-23When complaining about a duplicate declspec, provide a Fix-It thatDouglas Gregor
removes the copy. Patch from Eelis van der Weegen, tweaked/updated by me. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111807 91177308-0d34-0410-b5e6-96231b3b80d8
2010-08-23Clarify documentation of escaping for backslashDouglas Gregor
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111806 91177308-0d34-0410-b5e6-96231b3b80d8
2010-08-23Add a virtual destructor to the base of another class hierarchy with virtualChandler Carruth
methods. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111804 91177308-0d34-0410-b5e6-96231b3b80d8
2010-08-23Relax the construction of a definition for implicit, trivial defaultChandler Carruth
constructors. We perform semantic checking when creating the definition, and this isn't needed in certain contexts (value initialization) but is in others (default initialization). This fixes PR7948. We add explicit code to the default initialization path to ensure the definition is both present and valid. Doug, please review. I think this follows your latest suggestion, and it ended up remarkably cleaner than I anticipated. Also let me know if similar logic should be followed for destructors and copy-constructors. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111802 91177308-0d34-0410-b5e6-96231b3b80d8
2010-08-23Push DeclGroupRefs and TemplateNames in an opaque but type-safe wayJohn McCall
through the parser. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111800 91177308-0d34-0410-b5e6-96231b3b80d8
2010-08-23In Sema::AddBuiltinOperatorCandidates, candidate pointer types set can also ↵Argyrios Kyrtzidis
contain a ObjCObjectPointerType since r111699. Don't assume that they are only PointerTypes or we will crash. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111798 91177308-0d34-0410-b5e6-96231b3b80d8
2010-08-23chandlerc pointed out that ending a line with /\ is not very friendly. :)John McCall
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111797 91177308-0d34-0410-b5e6-96231b3b80d8
2010-08-23Kill off Parser::TemplateParameterList to avoid misparses.John McCall
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111796 91177308-0d34-0410-b5e6-96231b3b80d8
2010-08-23Sundry incremental steps towards killing off Action.John McCall
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111795 91177308-0d34-0410-b5e6-96231b3b80d8
2010-08-23fix rdar://8340348, a miscompile of boost that was exposed by r109848.Chris Lattner
That revision started classifying truly empty structs like "Y" and "X" as being NoClass/NoClass and turning them into 'ignore'. The call code turns around and allocates space for the ignored argument with GetUndefRValue. The bug is that GetUndefRValue would return the address as undef, instead of returning an object with a defined address but undefined contents. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111794 91177308-0d34-0410-b5e6-96231b3b80d8
2010-08-23Adjust code placement.Zhongxing Xu
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111790 91177308-0d34-0410-b5e6-96231b3b80d8
2010-08-23Abstract out everything having to do with member pointers into the ABIJohn McCall
class; they should just be completely opaque throughout IR gen now, although I haven't really audited that. Fix a bug apparently inherited from gcc-4.2 where we failed to null-check member data pointers when performing derived-to-base or base-to-derived conversions on them. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111789 91177308-0d34-0410-b5e6-96231b3b80d8
2010-08-23Extract a method to check whether a function is the global placementJohn McCall
operator new[]. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111788 91177308-0d34-0410-b5e6-96231b3b80d8
2010-08-22Go back to asking CodeGenTypes whether a type is zero-initializable.John McCall
Make CGT defer to the ABI on all member pointer types. This requires giving CGT a handle to the ABI. It's way easier to make that work if we avoid lazily creating the ABI. Make it so. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111786 91177308-0d34-0410-b5e6-96231b3b80d8
2010-08-22Add x86intrin.h which is generic x86 intrinsics for more than just Intel. ThusNick Lewycky
far, this just #include's immintrin.h for compatibility. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111785 91177308-0d34-0410-b5e6-96231b3b80d8
2010-08-22Do not elide copy construction when we're performing base-class initializationDouglas Gregor
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111783 91177308-0d34-0410-b5e6-96231b3b80d8
2010-08-22Eliminate a stale assertion. Fixes Clang self-host.Douglas Gregor
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111782 91177308-0d34-0410-b5e6-96231b3b80d8
2010-08-22Preserve the zero-initialization and construction-kind settings whenDouglas Gregor
instantiating CXXConstructExpr expressions. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111780 91177308-0d34-0410-b5e6-96231b3b80d8
2010-08-22When performing value-initialization for a class with a non-trivial,Douglas Gregor
implicitly-defined default constructor, zero-initialize the memory before calling the default constructor. Previously, we would only zero-initialize in the case of a trivial default constructor. Also, simplify the hideous logic that determines when we have a trivial default constructor and, therefore, don't need to emit any call at all. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111779 91177308-0d34-0410-b5e6-96231b3b80d8
2010-08-22Clean up a very silly use of first-class aggregates.John McCall
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111777 91177308-0d34-0410-b5e6-96231b3b80d8
2010-08-22Experiment with using first-class aggregates to represent member functionJohn McCall
pointers. I find the resulting code to be substantially cleaner, and it makes it very easy to use the same APIs for data member pointers (which I have conscientiously avoided here), and it avoids a plethora of potential inefficiencies due to excessive memory copying, but we'll have to see if it actually works. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111776 91177308-0d34-0410-b5e6-96231b3b80d8
2010-08-22Extract member function pointer comparison and null comparison intoJohn McCall
the ABI code. Implement correct semantics for these on ARM. I believe this completes the implementation of member function pointers on ARM. I think I'm going to switch member function pointers over to be non-aggregates while I have all this in mind. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111774 91177308-0d34-0410-b5e6-96231b3b80d8
2010-08-22Add two new enumerations to the unsupported list for Windows so that all casesChandler Carruth
are handled. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111773 91177308-0d34-0410-b5e6-96231b3b80d8
2010-08-22Abstract out member-pointer creation. I'm really unhappy about the currentJohn McCall
duplication between the constant and non-constant paths in all of this. Implement ARM ABI semantics for member pointer constants and conversion. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111772 91177308-0d34-0410-b5e6-96231b3b80d8
2010-08-22Abstract more member-pointerness out.John McCall
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111771 91177308-0d34-0410-b5e6-96231b3b80d8
2010-08-22Abstract out member-pointer conversions.John McCall
Pretty much everything having to do with member pointers is ABI-specific. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111770 91177308-0d34-0410-b5e6-96231b3b80d8
2010-08-22Detabify.Eli Friedman
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111768 91177308-0d34-0410-b5e6-96231b3b80d8
2010-08-22Implement the call parts of the member-function-pointer ARM C++ ABI.John McCall
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111766 91177308-0d34-0410-b5e6-96231b3b80d8
2010-08-22Extract calls to method pointers out as an ABI routine.John McCall
No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111752 91177308-0d34-0410-b5e6-96231b3b80d8