aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2010-04-08Match GCC's behavior and do not include '-Wunused-parameter' in '-Wunused'.Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@100810 91177308-0d34-0410-b5e6-96231b3b80d8
2010-04-08Explain that a template needs arguments to make it into a type, forJeffrey Yasskin
variable declarations. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@100809 91177308-0d34-0410-b5e6-96231b3b80d8
2010-04-08Set access properly on instantiated friend class template declarations.John McCall
Fixes PR6752. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@100806 91177308-0d34-0410-b5e6-96231b3b80d8
2010-04-08Add static analyzer check for calls to 'pthread_once()' where the ↵Ted Kremenek
control-flow has automatic storage. This matches the corresponding check for 'dispatch_once()'. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@100803 91177308-0d34-0410-b5e6-96231b3b80d8
2010-04-08Update test case.Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@100801 91177308-0d34-0410-b5e6-96231b3b80d8
2010-04-08Remove micro-optimization for not issueing CFG-based warnings for 'static ↵Ted Kremenek
inline' functions unless they are used. I discussed this with Daniel Dunbar, and we agreed that this provides an inconsistent warnings experience for the user and that there were genuine cases where we wouldn't want to do this optimization. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@100800 91177308-0d34-0410-b5e6-96231b3b80d8
2010-04-08Introduce an egregious hack to work around a bug in libstdc++ 4.2.x'sDouglas Gregor
<tr1/hashtable> header, where a friend class template std::tr1::__detail::_Map_base is declared with the wrong template parameters. GCC doesn't catch the problem, so Clang does a little back-flip to avoid diagnosing just this one instance of the problem. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@100790 91177308-0d34-0410-b5e6-96231b3b80d8
2010-04-08Fix a misuse of iterators when iterating through block'sFariborz Jahanian
parameters list for encoding. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@100788 91177308-0d34-0410-b5e6-96231b3b80d8
2010-04-08Include all warnings under '-Wunused' in '-Wmost' and '-Wall'.Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@100786 91177308-0d34-0410-b5e6-96231b3b80d8
2010-04-08Sort entries in diagnostic group "Most".Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@100785 91177308-0d34-0410-b5e6-96231b3b80d8
2010-04-08Maybe we should store template arguments in the position we allocated for themJohn McCall
instead of scribbling over random memory. Maybe. Hopefully this fixes the -vg buildbot. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@100784 91177308-0d34-0410-b5e6-96231b3b80d8
2010-04-08Make CXXScopeSpec invalid when incomplete, and propagate that into anyJeffrey Yasskin
Declarator that depends on it. This fixes several redundant errors and bad recoveries. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@100779 91177308-0d34-0410-b5e6-96231b3b80d8
2010-04-08Rename CGVtable files to CGVTables.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@100778 91177308-0d34-0410-b5e6-96231b3b80d8
2010-04-08Clarify an assert.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@100776 91177308-0d34-0410-b5e6-96231b3b80d8
2010-04-08Unbreak the buildDouglas Gregor
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@100775 91177308-0d34-0410-b5e6-96231b3b80d8
2010-04-08CIndex: move extractUSRSuffix out of extern "C" and simplify it.Benjamin Kramer
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@100773 91177308-0d34-0410-b5e6-96231b3b80d8
2010-04-08Eliminate excessive PCH deserialization caused by the search forDouglas Gregor
__cxxabiv1::__fundamental_type_info in every translation unit. Previously, we would perform name lookup for __cxxabiv1::__fundamental_type_info at the end of IRGen for a each translation unit, to determine whether it was present. If so, we we produce type information for all of the fundamental types. However, this name lookup causes PCH deserialization of a significant part of the translation unit, which has a woeful impact on performance. With this change, we now look at each record type after we've generated its vtable to see if it is __cxxabiv1::__fundamental_type_info. If so, we generate type info for all of the fundamental types. This works because __cxxabiv1::__fundamental_type_info should always have a key function (typically the virtual destructor), that will be defined once in the support library. The fundamental type information will end up there. Fixes <rdar://problem/7840011>. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@100772 91177308-0d34-0410-b5e6-96231b3b80d8
2010-04-08Remove caseless switch.Benjamin Kramer
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@100770 91177308-0d34-0410-b5e6-96231b3b80d8
2010-04-08Implement dependent friend function template specializations.John McCall
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@100753 91177308-0d34-0410-b5e6-96231b3b80d8
2010-04-08Removed unused object.Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@100750 91177308-0d34-0410-b5e6-96231b3b80d8
2010-04-08Fronted: Kill overly specialized RecordLayoutDumper, just make ↵Daniel Dunbar
-dump-record-layouts a bit that Sema honors. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@100747 91177308-0d34-0410-b5e6-96231b3b80d8
2010-04-08AST: Move C++ record layout dumping to ASTContext::DumpRecordLayout.Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@100746 91177308-0d34-0410-b5e6-96231b3b80d8
2010-04-08IRgen: Move the bit-field access type into CGBitFieldInfo, and change ↵Daniel Dunbar
bit-field LValues to just store the base address of object containing the bit-field. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@100745 91177308-0d34-0410-b5e6-96231b3b80d8
2010-04-08Patch to implement gcc's cstyle arguments in objcFariborz Jahanian
methods. wip. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@100734 91177308-0d34-0410-b5e6-96231b3b80d8
2010-04-08refactor out a function.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@100733 91177308-0d34-0410-b5e6-96231b3b80d8
2010-04-08Fix a (bogus) uninitialized-member-of-local warning.John McCall
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@100732 91177308-0d34-0410-b5e6-96231b3b80d8
2010-04-08Use SmallVector instead of an std::queue.Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@100730 91177308-0d34-0410-b5e6-96231b3b80d8
2010-04-08When a template (without arguments) is passed as a template typeJeffrey Yasskin
parameter, explicitly ask the user to give it arguments. We used to complain that it wasn't a type and expect the user to figure it out. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@100729 91177308-0d34-0410-b5e6-96231b3b80d8
2010-04-07Fix some redundant errors by changing CXXScopeSpec::isSet calls intoJeffrey Yasskin
isNotEmpty calls. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@100722 91177308-0d34-0410-b5e6-96231b3b80d8
2010-04-07update for api change.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@100718 91177308-0d34-0410-b5e6-96231b3b80d8
2010-04-07Implement checking for template literal operator functions. ThisSean Hunt
code won't actually get used yet because we don't handle non-type parameter packs, but when we do, this code should jump in and work. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@100716 91177308-0d34-0410-b5e6-96231b3b80d8
2010-04-07Add support for stpncpy_chk.Eric Christopher
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@100711 91177308-0d34-0410-b5e6-96231b3b80d8
2010-04-07rename llvm::llvm_report_error -> llvm::report_fatal_errorChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@100708 91177308-0d34-0410-b5e6-96231b3b80d8
2010-04-07Updated comment to reflect changes made in the most recent draft.Sean Hunt
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@100707 91177308-0d34-0410-b5e6-96231b3b80d8
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-07convert to -verify mode.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@100674 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-07Fix comment.Zhongxing Xu
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@100604 91177308-0d34-0410-b5e6-96231b3b80d8
2010-04-07Update checker build.Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@100603 91177308-0d34-0410-b5e6-96231b3b80d8
2010-04-07Deprecate CXXScopeSpec::isSet() in favor of isNotEmpty() or isValid().Jeffrey Yasskin
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@100600 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