aboutsummaryrefslogtreecommitdiff
path: root/lib
AgeCommit message (Collapse)Author
2009-11-10Attach location info with llvm.dbg.declare.Devang Patel
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86750 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-10Add FIXIT hint for -Wsemicolon-before-method-bodyTed Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86746 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-10Revert r86741; it doesn't handle virtual bases correctly.Eli Friedman
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86745 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-10Minor optimization to skip null check in generated code where it isn'tEli Friedman
necessary. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86741 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-10Fix for PR5454: make sure to use the right block as the predecessor in theEli Friedman
generated PHI node for the null check of a new operator. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86738 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-10Make -Wsemicolon-before-method-body opt-in (and part of -Wextra). Addresses ↵Ted Kremenek
<rdar://problem/7381735>. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86731 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-10Silence warning.Benjamin Kramer
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86719 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-10Improve parsing of template arguments to lay the foundation forDouglas Gregor
handling template template parameters properly. This refactoring: - Parses template template arguments as id-expressions, representing the result of the parse as a template name (Action::TemplateTy) rather than as an expression (lame!). - Represents all parsed template arguments via a new parser-specific type, ParsedTemplateArgument, which stores the kind of template argument (type, non-type, template) along with all of the source information about the template argument. This replaces an ad hoc set of 3 vectors (one for a void*, which was either a type or an expression; one for a bit telling whether the first was a type or an expression; and one for a single source location pointing at the template argument). - Moves TemplateIdAnnotation into the new Parse/Template.h. It never belonged in the Basic library anyway. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86708 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-10Changed a variable name to match what it representsFariborz Jahanian
(Ted's feedback). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86702 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-10This patch implements Code gen. for destruction ofFariborz Jahanian
global array of objects. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86701 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-10Only generate a VTT for classes that need a VTT.Mike Stump
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86699 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-10Localize -disable-llvm-optzns handling to BackendConsumer::CreatePasses.Daniel Dunbar
- This is conceptually better since the only thing we want this option to do is preserve the internal module as constructed by IRgen, before running any passes. - This also fixes bugs in -disable-llvm-optzns handling with regards to debug info. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86691 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-10Fix a similar problem with qualified lookup through using directives,John McCall
although in this case we probably just run a risk of duplicating work; I can't think of how this could cause a bug. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86680 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-10Make a somewhat more convincing test case for unqualified lookup throughJohn McCall
using directives, and fix a bug thereby exposed: since we're playing tricks with pointers, we need to make certain we're always using the same pointers for things. Also tweak an existing error message. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86679 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-10Ignore parentheses when check the type of the expr.Zhongxing Xu
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86677 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-10SizeofPointerChecker: Many false positives have the form 'sizeof *p'. Zhongxing Xu
This is reasonable because people know what they are doing when they intentionally dereference the pointer. So now we only emit warning when a pointer variable is use literally. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86673 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-10Add vtable caching to prevent multiple vtables for the same class fromMike Stump
being generated. Add the most derived vtable pointer to the VTT. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86671 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-10Fix unqualified lookup through using directives.John McCall
This is a pretty minimal test case; I'll make a better one later. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86669 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-10When trying to assign a regular string literal to an Objective-C 'id' type ↵Anders Carlsson
or a pointer to an NSString, emit a code insertion hint that turns it into an Objective-C string. For example: @class NSString; @interface Test + (void)test:(NSString *)string; @end void g(NSString *a); void f() { NSString *a = "Foo"; g("Foo"); [Test test:"Foo"]; } will produce t.m:10:17: warning: incompatible pointer types initializing 'char [4]', expected 'NSString *' NSString *a = "Foo"; ^~~~~ @ t.m:11:5: warning: incompatible pointer types passing 'char [4]', expected 'NSString *' g("Foo"); ^~~~~ @ t.m:12:14: warning: incompatible pointer types sending 'char [4]', expected 'NSString *' [Test test:"Foo"]; ^~~~~ @ 3 diagnostics generated. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86665 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-10Now we can safely use the argument expression's source range.Zhongxing Xu
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86663 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-10SizeofPointerChecker: If an explicit type specifier is used, do not issue ↵Zhongxing Xu
warnings. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86662 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-10Use PP.getLocForEndOfToken as suggested by John.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86661 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-10Use the source range of the whole sizeof expression, otherwise it crashes whenZhongxing Xu
the argument is not an expression. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86660 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-10If a function with a default argument is redefined and the new function also ↵Anders Carlsson
has a defualt argument then add a fixit hint that removes the default argument. Fixes PR5444. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86659 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-10Refine PointerSubChecker: compare the base region instead of the original Zhongxing Xu
region, so that arithmetic within a memory chunk is allowed. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86652 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-10Be sure to clear out VCall when we clear out VCalls.Mike Stump
Start implementing VTTs. WIP. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86650 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-10Rename: StripCasts describes what it does better. Zhongxing Xu
getBaseRegion will be used in another method. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86649 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-10Finish off mangling for the VTT.Mike Stump
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86647 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-10Add mangling for the construction vtable.Mike Stump
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86643 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-10Fix clang's use of DenseMap iterators after r86636 fixed their constness.Jeffrey Yasskin
Patch by Victor Zverovich! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86638 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-10Switch to getFileOrSTDIN().Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86632 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-10Move all of the type-printing logic to its own C++ source fileDouglas Gregor
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86629 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-09Privatize InitHeaderSearch, this functionality is only exposed viaDaniel Dunbar
ApplyHeaderSearchOptions now. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86617 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-09Enable the use of the new llvm objectsize intrinsic.Mike Stump
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86607 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-09Further change in a comment.Fariborz Jahanian
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86599 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-09Removed a FIXME on nested type specifier warning.Fariborz Jahanian
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86598 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-09Changed error for nested type qualifier mismatch toFariborz Jahanian
warning, to match gcc. It used to be warning, so better keep it a warning (it broke a certain project). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86597 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-09Make sure that Type::getAs<ArrayType>() (or Type::getAs<subclass ofDouglas Gregor
ArrayType>()) does not instantiate. Update all callers that used this unsafe feature to use the appropriate ASTContext::getAs*ArrayType method. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86596 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-09Remove stale FIXME.Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86595 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-09Make sure that we look into nested, transparent declaration contextsDouglas Gregor
when looking for a name within a given DeclContext. Now enumerators will show up in code-completion results. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86591 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-09For array pointee type, get its cvr qualifier fromFariborz Jahanian
its element type. Fixes pr5432. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86587 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-09Fix build after r86579.Benjamin Kramer
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86584 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-09Make sure that we instantiate default function arguments for anDouglas Gregor
overloaded operator(). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86581 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-09Add additional note to mark the cause of synthesized constructors. MarkEli Friedman
declaration invalid if the constructor can't be properly built. Addresses remaining review comments from Fariborz for r86500. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86579 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-09Improve instantiation of default template arguments for nestedDouglas Gregor
templates. The instantiation of these default arguments must be (and now, is) delayed until the template argument is actually used, at which point we substitute all levels of template arguments concurrently. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86578 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-09Add support for cdecl attribute. (As far as I know, it doesn't affect CodeGenEli Friedman
unless we start implementing command-line switches which override the default calling convention, so the effect is mostly to silence unknown attribute warnings.) git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86571 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-09__uint128_t is indeed an unsigned integer type. Fixes PR5435.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86561 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-09When transforming an InitListExpr, if we already computed a non-dependent ↵Douglas Gregor
type for the InitListExpr, keep it git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86559 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-09Add check for pointer arithmetic on non-array variables.Zhongxing Xu
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86538 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-09Add check for obsolete function call of getpw().Zhongxing Xu
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86537 91177308-0d34-0410-b5e6-96231b3b80d8