aboutsummaryrefslogtreecommitdiff
path: root/include
AgeCommit message (Collapse)Author
2012-05-01Remove the unused DestroyAttrs, noticed by Michael Han.Douglas Gregor
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@155877 91177308-0d34-0410-b5e6-96231b3b80d8
2012-05-01Move warn_cxx0x_right_shift_in_template_arg to CXX11Compat group, fromDouglas Gregor
Dmitri Gribenko! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@155872 91177308-0d34-0410-b5e6-96231b3b80d8
2012-05-01Remove ref/value inconsistency in redecl_iterator.David Blaikie
Similar to r155808 - this mistake has been made in a few iterators. Based on Chandler Carruth's feedback to r155808 I added an implicit conversion to Decl* to ease adoption/usage. Useful for the pointer comparison, but not the dyn_cast (due to template argument deduction causing the conversion not to be used) - there for future convenience, though. This idiom (op T* for iterators) seems to be fairly idiomatic within the LLVM codebase & I'll likely add it as I fix up the other iterators here. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@155869 91177308-0d34-0410-b5e6-96231b3b80d8
2012-04-30Remove -Wc++98-compat warning for an outrageously-rare circumstance of 'this'Richard Smith
being used in an exception specification in a way which isn't otherwise ill-formed in C++98: this warning also incorrectly triggered on uses of 'this' inside thread-safety attributes, and the mechanism required to tell these cases apart is more complex than can be justified by the (minimal) value of this part of -Wc++98-compat. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@155857 91177308-0d34-0410-b5e6-96231b3b80d8
2012-04-30For RecursiveASTVisitor, do data recursion for CXXOperatorCallExpr.Argyrios Kyrtzidis
rdar://11289247 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@155849 91177308-0d34-0410-b5e6-96231b3b80d8
2012-04-30Store the source range of a CXXOperatorCallExpr in the Expr object instead ofArgyrios Kyrtzidis
calculating it recursively. boost::assign::tuple_list_of uses the trick of chaining call operator expressions in order to declare a "list of tuples", e.g: std::vector<tuple> v = boost::assign::tuple_list_of(1, "foo")(2, "bar")(3, "qqq"); Due to CXXOperatorCallExpr calculating its source range recursively we would get significant slowdowns with a large number of chained call operator expressions and the potential for stack overflow. rdar://11350116 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@155848 91177308-0d34-0410-b5e6-96231b3b80d8
2012-04-30Add FixItHint for -Wnull-conversion to initialize with an appropriate literal.David Blaikie
Reviewed by Doug Gregor. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@155839 91177308-0d34-0410-b5e6-96231b3b80d8
2012-04-30Add -Wloop-analysis. This warning will fire on for loops which the variablesRichard Trieu
in the loop conditional do not change. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@155835 91177308-0d34-0410-b5e6-96231b3b80d8
2012-04-30Restore paren, bracket and brace counts in parser whenDouglas Gregor
TentativeParsingAction is reverted, from Pasi Parviainen! Fixes PR12480 / <rdar://problem/11341251>. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@155823 91177308-0d34-0410-b5e6-96231b3b80d8
2012-04-30Remove the ref/value inconsistency in filter_decl_iterator.David Blaikie
filter_decl_iterator had a weird mismatch where both op* and op-> returned T* making it difficult to generalize this filtering behavior into a reusable library of any kind. This change errs on the side of value, making op-> return T* and op* return T&. (reviewed by Richard Smith) git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@155808 91177308-0d34-0410-b5e6-96231b3b80d8
2012-04-30Correct CFGBlock's front() and back() to return by const ref rather than value.David Blaikie
This ought to fix PR11926, a crash when when running Clang built with GCC 4.7 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@155805 91177308-0d34-0410-b5e6-96231b3b80d8
2012-04-29[class.copy]p23: Fix an assertion caused by incorrect argument numbering in aRichard Smith
diagnostic, add a test for this paragraph, and tighten up the diagnostic wording a little. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@155784 91177308-0d34-0410-b5e6-96231b3b80d8
2012-04-28Currently __builtin_annotation() only annotates an i32.Julien Lerouge
i32 __builtin_annotation(i32, string); Applying it to i64 (e.g., long long) generates the following IR. trunc i64 {{.*}} to i32 call i32 @llvm.annotation.i32 zext i32 {{.*}} to i64 The redundant truncation and extension make the result difficult to use. This patch makes __builtin_annotation() generic. type __builtin_annotation(type, string); For the i64 example, it simplifies the generated IR to: call i64 @llvm.annotation.i64 Patch by Xi Wang! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@155764 91177308-0d34-0410-b5e6-96231b3b80d8
2012-04-28improve error recovery for extra ')'s after a if/switch/while condition. ↵Chris Lattner
Before: t.c:3:9: error: expected expression if (x)) { ^ .. which isn't even true - a statement or expression is fine. After: t.c:3:9: error: extraneous ')' after condition, expected a statement if (x)) { ^ This is the second part of PR12595 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@155762 91177308-0d34-0410-b5e6-96231b3b80d8
2012-04-28C++11 weakens the requirement for types used with offsetof from POD to ↵Benjamin Kramer
standard layout type. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@155757 91177308-0d34-0410-b5e6-96231b3b80d8
2012-04-28Rename isPODType (using the C++98 rules) into isCXX98PODType and make ↵Benjamin Kramer
isPODType decide which one to use based on LangOptions. - -Wc++98-compat depends on the c++98 definition - Now __is_pod returns the right thing in c++11 and c++98 mode - All changes to the type traits test are validated against g++ 4.7 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@155756 91177308-0d34-0410-b5e6-96231b3b80d8
2012-04-28[analyzer] Remove references to idx::TranslationUnit. Index is dead, ↵Jordy Rose
cross-TU inlining never panned out. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@155751 91177308-0d34-0410-b5e6-96231b3b80d8
2012-04-27Make the diagnostic for "unexpected ':' in nested name specifier" a bit ↵Nico Weber
easier on the eyes. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@155741 91177308-0d34-0410-b5e6-96231b3b80d8
2012-04-27Bump up the MaxDepth in the BalancedDelimiterTracker.Chad Rosier
The Avida Project (http://avida.devosoft.org) exceeds the 256 limit. rdar://11289131 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@155737 91177308-0d34-0410-b5e6-96231b3b80d8
2012-04-27PR12224 (sort of): Diagnose inheriting constructor declarations in C++11 mode.Richard Smith
We do not support IRGen for these, and get some parts of the semantic analysis wrong. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@155728 91177308-0d34-0410-b5e6-96231b3b80d8
2012-04-27Imrpove the note text for when a non-type decl hides a tag typeKaelyn Uhrain
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@155723 91177308-0d34-0410-b5e6-96231b3b80d8
2012-04-27Use enum to set debug info size generated by ClangAlexey Samsonov
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@155697 91177308-0d34-0410-b5e6-96231b3b80d8
2012-04-27Use a deque instead of an ImmutableList in AnalysisConsumer to preserve the ↵Ted Kremenek
file order that functions are visited. Should fix the buildbots. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@155693 91177308-0d34-0410-b5e6-96231b3b80d8
2012-04-27Change FunctionSummary.h's definition of SetOfDecls to be an ImmutableList ↵Ted Kremenek
instead of a mutable SmallPtrSet. While iterating over LocalTUDecls, there were cases where we could modify LocalTUDecls, which could result in invalidating an iterator and an analyzer crash. Along the way, switch some uses of std::queue to std::dequeue, which should be slightly more efficient. Unfortunately, this is a difficult case to create a test case for. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@155680 91177308-0d34-0410-b5e6-96231b3b80d8
2012-04-26Add note to help explain why a tag such as 'struct' is needed to referKaelyn Uhrain
to a given type, when the reason is that there is a non-type decl with the same name. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@155677 91177308-0d34-0410-b5e6-96231b3b80d8
2012-04-26Remove the group from -fhonor_infinites/-fno_honor_infinites aliases. AliasesChad Rosier
with groups are unsupported. rdar://11324283 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@155637 91177308-0d34-0410-b5e6-96231b3b80d8
2012-04-26PR12660: Don't crash when initializing a const reference from a braced init listRichard Smith
which creates a temporary by calling a constructor. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@155608 91177308-0d34-0410-b5e6-96231b3b80d8
2012-04-26Two missing -Wc++98-compat warnings, for null pointers as non-type templateRichard Smith
arguments, and 'this' in exception-specifications. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@155606 91177308-0d34-0410-b5e6-96231b3b80d8
2012-04-26Reject cases likeRafael Espindola
struct __attribute__((visibility("hidden"))) a; struct __attribute__((visibility("default"))) b; which gcc already rejects. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@155603 91177308-0d34-0410-b5e6-96231b3b80d8
2012-04-25If a type is non-literal by virtue of being incomplete produce notesRichard Smith
explaining that. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@155598 91177308-0d34-0410-b5e6-96231b3b80d8
2012-04-25RecursiveASTVisitor: When in 'shouldVisitTemplateInstantiations' mode, visitRichard Smith
all instantiations of a template when we visit the canonical declaration of the primary template, rather than trying to match them up to the partial specialization from which they are instantiated. This fixes a bug where we failed to visit instantiations of partial specializations of member templates of class templates, and naturally extends to allow us to visit instantiations where we have instantiated only a declaration. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@155597 91177308-0d34-0410-b5e6-96231b3b80d8
2012-04-25Add an error message with fixit hint for changing '.' to '->'.Kaelyn Uhrain
This is mainly for attempting to recover in cases where a class provides a custom operator-> and a '.' was accidentally used instead of '->' when accessing a member of the object returned by the current object's operator->. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@155580 91177308-0d34-0410-b5e6-96231b3b80d8
2012-04-25Use a SmallMap for StoredDeclsMap, it's usually sparsely populated so we can ↵Benjamin Kramer
avoid initializing memory for 64 buckets. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@155571 91177308-0d34-0410-b5e6-96231b3b80d8
2012-04-25Convert a std::map that usually has between 0 and 10 elements to SmallMap.Benjamin Kramer
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@155570 91177308-0d34-0410-b5e6-96231b3b80d8
2012-04-24Add acos, asin, ceil, fabs, floor, fmax, fmin, round, and tan to the builtinChad Rosier
math library functions. rdar://11251464 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@155502 91177308-0d34-0410-b5e6-96231b3b80d8
2012-04-24Add atan, atan2, exp, and log to the builtin math library functions.Chad Rosier
With -fno-math-errno (the default for Darwin) or -ffast-math these library function can be marked readnone enabling more opportunities for CSE and other optimizations. rdar://11251464 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@155498 91177308-0d34-0410-b5e6-96231b3b80d8
2012-04-24Alphabetize the builtin math library functions. No functional change intended.Chad Rosier
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@155492 91177308-0d34-0410-b5e6-96231b3b80d8
2012-04-24RecursiveASTVisitor: Visit instantiations of member templates of classRichard Smith
templates. In an implicit instantiation of a member class, any member templates don't get instantiated, so the existing check which only visited the instantiations of a defined template skipped these templates' instantiations. Since there is only a single declaration of a member template of a class template specialization, just use that to determine whether to visit the instantiations. This introduces a slight inconsistency in that we will visit the instantiations of such templates whether or not they are defined, but we never visit a declared-but-not-defined instantiation, so this turns out to not matter. Patch by Daniel Jasper! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@155487 91177308-0d34-0410-b5e6-96231b3b80d8
2012-04-23Revert r155363, due to the underlying patches in LLVM causing regressionChandler Carruth
test suite failures. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@155371 91177308-0d34-0410-b5e6-96231b3b80d8
2012-04-23Hexagon V5 (floating point) support in cfe.Sirish Pande
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@155363 91177308-0d34-0410-b5e6-96231b3b80d8
2012-04-23Fix PR12608. Patch contributed by Yang Chen.Manuel Klimek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@155355 91177308-0d34-0410-b5e6-96231b3b80d8
2012-04-23Inline helper function into only caller.Rafael Espindola
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@155352 91177308-0d34-0410-b5e6-96231b3b80d8
2012-04-23Fixes comment referencing old name.Manuel Klimek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@155340 91177308-0d34-0410-b5e6-96231b3b80d8
2012-04-22Revert 155102 but add a fixme while I debug what is wrong with chrome'sRafael Espindola
components build. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@155314 91177308-0d34-0410-b5e6-96231b3b80d8
2012-04-22PR12585: When processing a friend template inside a class template, don'tRichard Smith
pretend there was no previous declaration -- that can lead us to injecting a class template (with no access specifier) into a class scope. Instead, just avoid the problematic checks. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@155303 91177308-0d34-0410-b5e6-96231b3b80d8
2012-04-21Fix regression in r154844. If necessary, defer computing adjusted destructorRichard Smith
exception specifications in C++11 until after we've parsed the exception specifications for nested classes. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@155293 91177308-0d34-0410-b5e6-96231b3b80d8
2012-04-20[analyzer] Run remove dead bindings right before leaving a function.Anna Zaks
This is needed to ensure that we always report issues in the correct function. For example, leaks are identified when we call remove dead bindings. In order to make sure we report a callee's leak in the callee, we have to run the operation in the callee's context. This change required quite a bit of infrastructure work since: - We used to only run remove dead bindings before a given statement; here we need to run it after the last statement in the function. For this, we added additional Program Point and special mode in the SymbolReaper to remove all symbols in context lower than the current one. - The call exit operation turned into a sequence of nodes, which are now guarded by CallExitBegin and CallExitEnd nodes for clarity and convenience. (Sorry for the long diff.) git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@155244 91177308-0d34-0410-b5e6-96231b3b80d8
2012-04-20[analyzer] Remove unused method.Anna Zaks
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@155243 91177308-0d34-0410-b5e6-96231b3b80d8
2012-04-20[analyzer] ConstifyAnna Zaks
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@155242 91177308-0d34-0410-b5e6-96231b3b80d8
2012-04-20Update doxygen comment to match changes in r155218.Richard Smith
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@155232 91177308-0d34-0410-b5e6-96231b3b80d8