aboutsummaryrefslogtreecommitdiff
path: root/lib
AgeCommit message (Collapse)Author
2010-04-07Fixed 80-cols violationSean Hunt
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@100704 91177308-0d34-0410-b5e6-96231b3b80d8
2010-04-07add a new driver-level -ferror-limit=412 option, which causes clang to stopChris Lattner
emitting diagnostics after it has produced that many errors. Give this a default value of 20 which produces plenty of errors for people to fix before recompiling but not so many that their entire console scrolls away when the compiler gets confused. The experience looks like this: $ clang foo.c <tons of crap> foo.c:102:3: error: unknown type name 'somethingbad' somethingbad x; ^ fatal error: too many errors emitted, stopping now 36 warnings and 20 errors generated. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@100689 91177308-0d34-0410-b5e6-96231b3b80d8
2010-04-07add clang -cc1 level support for "-ferror-limit 42"Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@100687 91177308-0d34-0410-b5e6-96231b3b80d8
2010-04-07Return early from Sema::MarkDeclarationReferenced when we know thereDouglas Gregor
isn't any extra work to perform. Also, don't check for unused parameters when the warnings will be suppressed anyway. Improves performance of -fsyntax-only on 403.gcc's combine.c by ~2.5%. <rdar://problem/7836787> git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@100686 91177308-0d34-0410-b5e6-96231b3b80d8
2010-04-07add capabilities to stop emitting errors after some limit.Chris Lattner
Right now the limit is 0 (aka disabled) git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@100684 91177308-0d34-0410-b5e6-96231b3b80d8
2010-04-07Don't emit an 'unused expression' warning for '||' and '&&' expressions that ↵Ted Kremenek
contain assignments or similar side-effects. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@100676 91177308-0d34-0410-b5e6-96231b3b80d8
2010-04-07Instead of counting totally diagnostics, split the count into a countChris Lattner
of errors and warnings. This allows us to emit something like this: 2 warnings and 1 error generated. instead of: 3 diagnostics generated. This also stops counting 'notes' because they are just follow-on information about the previous diag, not a diagnostic in themselves. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@100675 91177308-0d34-0410-b5e6-96231b3b80d8
2010-04-07Improve handling of friend types in several ways:Douglas Gregor
- When instantiating a friend type template, perform semantic analysis on the resulting type. - Downgrade the errors concerning friend type declarations that do not refer to classes to ExtWarns in C++98/03. C++0x allows practically any type to be befriended, and ignores the friend declaration if the type is not a class. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@100635 91177308-0d34-0410-b5e6-96231b3b80d8
2010-04-07Split Sema::ActOnFriendTypeDecl into Sema::CheckFriendTypeDecl (forDouglas Gregor
semantic analysis) and Sema::ActOnFriendTypeDecl (the action callback). This is a prerequisite for improving template instantiation of friend type declarations. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@100633 91177308-0d34-0410-b5e6-96231b3b80d8
2010-04-07@llvm.sqrt isn't really close enough to C's sqrt to justify emitting callsJohn McCall
to the intrinsic, even when math-errno is off. Fixes rdar://problem/7828230 by falling back on the library function. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@100613 91177308-0d34-0410-b5e6-96231b3b80d8
2010-04-07a ridiculous amount of propagation through the backend later, Chris Lattner
have the code generate slap a srcloc metadata on inline asm nodes. This allows us to diagnose invalid inline asms with such nice diagnostics as: <inline asm>:1:2: error: unrecognized instruction abc incl %eax ^ asm.c:2:12: note: generated from here __asm__ ("abc incl %0" : "+r" (X)); ^ 2 diagnostics generated. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@100608 91177308-0d34-0410-b5e6-96231b3b80d8
2010-04-07Teach -Wsign-compare to treat 1 << blah as "idiomatically non-negative".John McCall
Fixes a spurious warning in LLVM. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@100595 91177308-0d34-0410-b5e6-96231b3b80d8
2010-04-07Fix crash in StoreManager::CastRegion() when the base region is a type with ↵Ted Kremenek
0 size. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@100594 91177308-0d34-0410-b5e6-96231b3b80d8
2010-04-07Check access for the implicit calls to destructors that occur when weJohn McCall
have a temporary object in C++. Also fix a tag mismatch that Doug noticed. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@100593 91177308-0d34-0410-b5e6-96231b3b80d8
2010-04-07Implement code completion for Objective-C method declarations andDouglas Gregor
definitions, e.g., after - or - (id) we'll find all of the "likely" instance methods that one would want to declare or define at this point. In the latter case, we only produce results whose return types match "id". git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@100587 91177308-0d34-0410-b5e6-96231b3b80d8
2010-04-06Minor clean up.Fariborz Jahanian
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@100583 91177308-0d34-0410-b5e6-96231b3b80d8
2010-04-06default access for synthesize ivar is @protect.Fariborz Jahanian
Fixes radar 7823675. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@100582 91177308-0d34-0410-b5e6-96231b3b80d8
2010-04-06Patch to not build ivar ASTs when they are ilegallyFariborz Jahanian
declared in categories. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@100577 91177308-0d34-0410-b5e6-96231b3b80d8
2010-04-06Devote a special diagnostic to the typoJohn McCall
(void*) someFunction(5, 10, 15, 20); where the cast is presumably meant to be to 'void'. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@100574 91177308-0d34-0410-b5e6-96231b3b80d8
2010-04-06Teach MemRegion::getBaseRegion() about ObjCIvarRegions. We want to treatTed Kremenek
them the same way as fields. This fixes a regression in RegionStore::RemoveDeadbindings() that emerged from going to the cluster-based analysis. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@100570 91177308-0d34-0410-b5e6-96231b3b80d8
2010-04-06Implement the protected access restriction ([class.protected]), which requiresJohn McCall
that protected members be used on objects of types which derive from the naming class of the lookup. My first N attempts at this were poorly-founded, largely because the standard is very badly worded here. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@100562 91177308-0d34-0410-b5e6-96231b3b80d8
2010-04-06When code completion produces an overload set as its results (e.g.,Douglas Gregor
while we're completing in the middle of a function call), also produce "ordinary" name results that show what can be typed at that point. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@100558 91177308-0d34-0410-b5e6-96231b3b80d8
2010-04-06Do not produce semicolons at the end of code-completion resultsDouglas Gregor
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@100557 91177308-0d34-0410-b5e6-96231b3b80d8
2010-04-06Only prove macros as code-completion results when we're in a caseDouglas Gregor
statement or for ordinary names. This means that we won't show macros when completing, e.g., member expressions such as "p->". git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@100555 91177308-0d34-0410-b5e6-96231b3b80d8
2010-04-06When sending a message to "id", apply some heuristics to try to narrowDouglas Gregor
down the set of code-completion results based on Objective-C conventions. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@100548 91177308-0d34-0410-b5e6-96231b3b80d8
2010-04-06teach clang to install the inline asm diagnostic handler,Chris Lattner
allowing backend errors to be mapped through clang's diagnostics subsystem, including the backend location info. We now get: $ clang asm.c -c -o t.o -integrated-as <inline asm>:1:2: error: unrecognized instruction abc incl %eax ^ 1 diagnostic generated. With colors, and correct "# diagnostics generated". git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@100543 91177308-0d34-0410-b5e6-96231b3b80d8
2010-04-06reduce indentation, tidy.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@100537 91177308-0d34-0410-b5e6-96231b3b80d8
2010-04-06Make code-completion for Objective-C message sends to "id" work in theDouglas Gregor
presence of precompiled headers by forcibly loading all of the methods we know about from the PCH file before constructing our code-completion list. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@100535 91177308-0d34-0410-b5e6-96231b3b80d8
2010-04-06fit in 80 colsChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@100534 91177308-0d34-0410-b5e6-96231b3b80d8
2010-04-06Put type restriction on convesion to nonconforming 'id' back in Fariborz Jahanian
block pointer type comparison. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@100533 91177308-0d34-0410-b5e6-96231b3b80d8
2010-04-06Driver: Add a Tool::hasGoodDiagnostics hook, and use it to simplify logic forDaniel Dunbar
deciding when we need to emit an extra "command failed" diagnostic. - This also fixes the case where we were emitting that extra diagnostics, even when using clang w/ the integrated assembler, which has good diagnostics. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@100529 91177308-0d34-0410-b5e6-96231b3b80d8
2010-04-06Implement support for code completion of an Objective-C message send toDouglas Gregor
"id" or an expression of type "id". In these cases, we produce a list of all of the (class or instance) methods, respectively, that we know about. Note that this implementation does not yet work well with precompiled headers; that's coming soon. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@100528 91177308-0d34-0410-b5e6-96231b3b80d8
2010-04-06Perform code-completion within ParseCastExpression, which handles,Douglas Gregor
e.g., the right-hand side of binary expressions. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@100526 91177308-0d34-0410-b5e6-96231b3b80d8
2010-04-06Fix PR 6725. It looks like the copy constructor gets elided during inlining.Zhongxing Xu
This bug only shows up with GCC 4.4.1 Release-Asserts build. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@100516 91177308-0d34-0410-b5e6-96231b3b80d8
2010-04-06IRgen: Move BitFieldIsSigned bit into CGBitFieldInfo.Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@100513 91177308-0d34-0410-b5e6-96231b3b80d8
2010-04-06Simplify.Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@100512 91177308-0d34-0410-b5e6-96231b3b80d8
2010-04-06Simplify.Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@100511 91177308-0d34-0410-b5e6-96231b3b80d8
2010-04-05Make Diagnostic reference-counted, which is simpler than jugglingDouglas Gregor
maybe-ownership vs. ownership. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@100498 91177308-0d34-0410-b5e6-96231b3b80d8
2010-04-05Use cast<> + OpaquePtr.getAs<Decl> to add extra checking of our assumptions.Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@100496 91177308-0d34-0410-b5e6-96231b3b80d8
2010-04-05Match MemoryBuffer API changes.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@100484 91177308-0d34-0410-b5e6-96231b3b80d8
2010-04-05Fix possible null dereference by bailing out of ↵Ted Kremenek
CheckObjCPropertyAttributes() early if the Decl* is null. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@100483 91177308-0d34-0410-b5e6-96231b3b80d8
2010-04-05IRgen: Move BitField LValues to just hold a reference to the CGBitFieldInfo.Daniel Dunbar
- Unfortunately, this requires some horrible code in CGObjCMac which always allocats a CGBitFieldInfo because we don't currently build a proper layout for Objective-C classes. It needs to be cleaned up, but I don't want the bit-field cleanups to be blocked on that. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@100474 91177308-0d34-0410-b5e6-96231b3b80d8
2010-04-05Extend the type printing policy to allow one to turn off the printingDouglas Gregor
of file locations for anonymous tag types (e.g., "enum <anonymous at t.h:15:6>"), which can get rather long. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@100470 91177308-0d34-0410-b5e6-96231b3b80d8
2010-04-05Clarify the ownership semantics of the Diagnostic object used byDouglas Gregor
ASTUnit. Previously, we would end up with use-after-free errors because the Diagnostic object would be creating in one place (say, CIndex) and its ownership would not be transferred into the ASTUnit. Fixes <rdar://problem/7818608>. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@100464 91177308-0d34-0410-b5e6-96231b3b80d8
2010-04-05Emit debug info for objc getters and setters.Devang Patel
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@100462 91177308-0d34-0410-b5e6-96231b3b80d8
2010-04-05fix PR6780, properly handling the IR {|} escapes in inline asm strings.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@100449 91177308-0d34-0410-b5e6-96231b3b80d8
2010-04-05fix PR6782, an accept invalid. We weren't emitting the diagnostic Chris Lattner
returned by SetTypeSpecType. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@100443 91177308-0d34-0410-b5e6-96231b3b80d8
2010-04-05Minor ASTUnit cleanups:Douglas Gregor
- Rename "Diagnostics" and related to "StoredDiagnostics", to better capture what we're actually storing. - Move SourceManager and FileManager to the heap. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@100441 91177308-0d34-0410-b5e6-96231b3b80d8
2010-04-05IRgen: Lift BitFieldInfo to CGBitFieldInfo at namespace level.Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@100433 91177308-0d34-0410-b5e6-96231b3b80d8
2010-04-05Add a FIXME and reduce nesting.Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@100432 91177308-0d34-0410-b5e6-96231b3b80d8