aboutsummaryrefslogtreecommitdiff
path: root/lib
AgeCommit message (Collapse)Author
2012-03-15Unrevert r152761 (reverted in r152772) with a fix for the issue which wasRichard Smith
breaking bootstrap. No test yet: it's quite hard to tickle the failure case. The specific testcase for this wouldn't be useful for testing anything more general than a reintroduction of this precise bug in any case. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152775 91177308-0d34-0410-b5e6-96231b3b80d8
2012-03-15Reapply r152745 (reverted in 152765) now that compiler-rt is fixed.David Blaikie
Original commit message: Provide -Wnull-conversion separately from -Wconversion. Like GCC, provide a NULL conversion to non-pointer conversion as a separate flag, on by default. GCC's flag is "conversion-null" which we provide for cross compatibility, but in the interests of consistency (with -Wint-conversion, -Wbool-conversion, etc) the canonical Clang flag is called -Wnull-conversion. Patch by Lubos Lunak. Review feedback by myself, Chandler Carruth, and Chad Rosier. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152774 91177308-0d34-0410-b5e6-96231b3b80d8
2012-03-15Revert r152761 "Minor optimization to constant evaluation: don't botherDaniel Dunbar
computing expr source...", it breaks bootstrap. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152772 91177308-0d34-0410-b5e6-96231b3b80d8
2012-03-15Small cleanup: move trailing-return-type special-casing intoRichard Smith
getDeclSpecContextFromDeclaratorContext. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152766 91177308-0d34-0410-b5e6-96231b3b80d8
2012-03-15Revert r152745 as it's breaking the internal buildbots.Chad Rosier
Abbreviated commit message: Provide -Wnull-conversion separately from -Wconversion. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152765 91177308-0d34-0410-b5e6-96231b3b80d8
2012-03-15Minor optimization to constant evaluation: don't bother computing expr sourceRichard Smith
locations for diagnostics we're not going to emit, and don't track the subobject designator outside C++11 (since we're not going to use it anyway). This seems to give about a 0.5% speedup on 403.gcc/combine.c, but the results were sufficiently noisy that I can't reject the null hypothesis. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152761 91177308-0d34-0410-b5e6-96231b3b80d8
2012-03-15Remove a variable rendered unused by r152750.Richard Smith
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152758 91177308-0d34-0410-b5e6-96231b3b80d8
2012-03-14[frontend] Add support for disabling the "inline" keyword using Chad Rosier
-fno-inline-functions. This behaves much like -fno-inline in gcc, but based on a discussion with Daniel it was decided that -fno-inline-functions should subsume -fno-inline. Please speak up if you object. The -fno-inline flag remains ignored. Final part of rdar://10972766 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152754 91177308-0d34-0410-b5e6-96231b3b80d8
2012-03-14modern objective-c translator: section info.Fariborz Jahanian
and metadata for "non-lazy" class and categories. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152751 91177308-0d34-0410-b5e6-96231b3b80d8
2012-03-14Instantiating a class template should not instantiate the definition of anyRichard Smith
scoped enumeration members. Later uses of an enumeration temploid as a nested name specifier should cause its instantiation. Plus some groundwork for explicit specialization of member enumerations of class templates. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152750 91177308-0d34-0410-b5e6-96231b3b80d8
2012-03-14'#if 0' out a variable that's only used in other preprocessor-disabled code.Matt Beaumont-Gay
(Why are we keeping all of this code around anyway? Say the word and I'll start swinging the delete hammer.) git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152749 91177308-0d34-0410-b5e6-96231b3b80d8
2012-03-14Provide -Wnull-conversion separately from -Wconversion.David Blaikie
Like GCC, provide a NULL conversion to non-pointer conversion as a separate flag, on by default. GCC's flag is "conversion-null" which we provide for cross compatibility, but in the interests of consistency (with -Wint-conversion, -Wbool-conversion, etc) the canonical Clang flag is called -Wnull-conversion. Patch by Lubos Lunak. Review feedback by myself, Chandler Carruth, and Chad Rosier. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152745 91177308-0d34-0410-b5e6-96231b3b80d8
2012-03-14objective-c modern tranaltor. More section info.Fariborz Jahanian
for misc. objc meta-data. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152743 91177308-0d34-0410-b5e6-96231b3b80d8
2012-03-14No longer defining LP64 in 64-bit builds on platforms which are not LP64.Aaron Ballman
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152740 91177308-0d34-0410-b5e6-96231b3b80d8
2012-03-14When emitting a diagnostic about two-phase name lookup, don't do uselessNick Lewycky
qualified name lookups into transparent contexts. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152739 91177308-0d34-0410-b5e6-96231b3b80d8
2012-03-14Fix dereference of end iterator. Spotted by ASan.Matt Beaumont-Gay
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152738 91177308-0d34-0410-b5e6-96231b3b80d8
2012-03-14[analyzer] Diagnostics: Supply Caller information even if the bug occursAnna Zaks
in the callee. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152734 91177308-0d34-0410-b5e6-96231b3b80d8
2012-03-14objective-c modern translator.Fariborz Jahanian
Add the _class_ro_t.reserved field for 64bit targets. // rdar://11040024 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152731 91177308-0d34-0410-b5e6-96231b3b80d8
2012-03-14[Analyser] Remove unnecessary recursive visits for ExprWithCleanups andErik Verbruggen
MaterializeTemporaryExpr. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152730 91177308-0d34-0410-b5e6-96231b3b80d8
2012-03-14Minor cleanup in attribute-related diagnostics, from Alexander Kornienko!Douglas Gregor
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152725 91177308-0d34-0410-b5e6-96231b3b80d8
2012-03-14Parse brace initializers as default arguments. PR12236.Sebastian Redl
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152721 91177308-0d34-0410-b5e6-96231b3b80d8
2012-03-14[Analyser] Removes more recursive visitations in ExprEngine that are noErik Verbruggen
longer needed as the CFG is fully linearized. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152720 91177308-0d34-0410-b5e6-96231b3b80d8
2012-03-14[Sema] Fix SemaDiagnosticBuilder to be inline.Daniel Dunbar
- As with DiagnosticBuilder, it is very important that SemaDiagnosticBuilder be completely inline to ensure that the compiler can rip it apart and sink it to registers. This is good for another 30k reduction in code size. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152708 91177308-0d34-0410-b5e6-96231b3b80d8
2012-03-14Add support to mangle templated member function names with templateEric Christopher
args. Fixes rdar://11042577 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152691 91177308-0d34-0410-b5e6-96231b3b80d8
2012-03-13objective-c modern rewriter. Do not add _class_ro_t.reserved Fariborz Jahanian
field. // rdar://11040024 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152685 91177308-0d34-0410-b5e6-96231b3b80d8
2012-03-13[driver] Clang should report an error for -faltivec on non-ppc.Chad Rosier
rdar://10963572 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152684 91177308-0d34-0410-b5e6-96231b3b80d8
2012-03-13When adding member functions to a class add any specializations ofEric Christopher
function templates as well. A future commit will mangle the added name with the template args like classes are mangled. Fixes rdar://10986010 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152683 91177308-0d34-0410-b5e6-96231b3b80d8
2012-03-13[analyser] Refactor shouldInline logic into a helper.Anna Zaks
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152677 91177308-0d34-0410-b5e6-96231b3b80d8
2012-03-13[analyzer] Call enter/exit diagnostic should refer to caller/callee,Anna Zaks
respectively. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152676 91177308-0d34-0410-b5e6-96231b3b80d8
2012-03-13[Basic] Fix up DiagnosticBuilder::{FlushCounts,Emit} to be inline.Daniel Dunbar
- This is much more important than it appears at first glance... The intended design of DiagnosticBuilder was that it never escape and that all its members would get lowered to registers by the compiler. By fixing Emit here, the compiler can completely eliminate the DiagnosticBuilder object and never need to push those registers back into it. Unfortunately, Sema has broken DiagnosticBuilder in other ways (by introducing SemaDiagnosticBuilder), so we don't get the fill impact of this, but it is still good for 30k reduction in code size. I'll work on fixing the SemaDiagnosticBuilder problems next. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152669 91177308-0d34-0410-b5e6-96231b3b80d8
2012-03-13Allow vectors to be constructed from constexpr function arguments inRichard Smith
constant expressions. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152665 91177308-0d34-0410-b5e6-96231b3b80d8
2012-03-13[driver] Parse diagnostic args in the driver.Chad Rosier
Previously, only diagnostics thrown by the cc1 process were actually honoring the diagnostic options given on the command line, like -Werror. Reuse the existing code in Frontend currently used for cc1, adjusting it to not interpret -Wl, linker flags as warnings. Also fix a faulty test exposed by this change. It wasn't actually testing anything, and was giving this warning: clang-3: warning: argument unused during compilation: '-verify' Which -Werror didn't turn into an error because it was output by the driver, not the cc1 process, and diagnostic options weren't parsed by the driver. And you couldn't see the warning when running the test suite. Fixes PR12181. Patch by Dylan Noblesmith <nobled@dreamwidth.org>. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152660 91177308-0d34-0410-b5e6-96231b3b80d8
2012-03-13[analyzer] Change the order in which we analyze the functions underAnna Zaks
inlining to be the reverse of their declaration. This optimizes running time under inlining up to 20% since we do not re-analyze the utility functions which are usually defined first in the translation unit if they have already been analyzed while inlined into the root functions. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152653 91177308-0d34-0410-b5e6-96231b3b80d8
2012-03-13[analyzer] Use BFS over call graph when analysing functions.Anna Zaks
BFS should give slightly better performance. Ex: Suppose, we have two roots R1 and R2. A callee function C is reachable through both. However, C is not inlined when analyzing R1 due to inline stack depth limit. With DFS, C will be analyzed as top level even though it would be analyzed as inlined through R2. On the other hand, BFS could avoid analyzing C as top level. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152652 91177308-0d34-0410-b5e6-96231b3b80d8
2012-03-13[analyzer] Refactor CallGraph to use Recursive AST visitor whenAnna Zaks
collecting function Decls. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152651 91177308-0d34-0410-b5e6-96231b3b80d8
2012-03-13[analyzer] Use recursive AST visitor to drive simple visitation order inAnna Zaks
AnalysisConsumer. As a result: - We now analyze the C++ methods which are defined within the class body. These were completely skipped before. - Ensure that AST checkers are called on functions in the order they are defined in the Translation unit. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152650 91177308-0d34-0410-b5e6-96231b3b80d8
2012-03-13[analyzer] Minor: factor out logic for determining if we should skip aAnna Zaks
function. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152649 91177308-0d34-0410-b5e6-96231b3b80d8
2012-03-13[analyzer] Move the check for parser errors out of the loop over Decls.Anna Zaks
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152648 91177308-0d34-0410-b5e6-96231b3b80d8
2012-03-13Fix the long double to be of width/align 64. Rename va_list_test toRoman Divacky
powerpc_types and add testing for the (long) double there. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152647 91177308-0d34-0410-b5e6-96231b3b80d8
2012-03-13Spelling.Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152644 91177308-0d34-0410-b5e6-96231b3b80d8
2012-03-13[Basic] Stop using a SmallVector<> for Diagnostic. This drops Clang binary sizeDaniel Dunbar
by ~%.3/~100k in my build -- simply by eliminating the horrible code bloat coming from the .clear() of the SmallVector<FixItHint>, which does a std::~string, etc. - My understanding is we don't ever emit arbitrary numbers of fixits, so I just moved us to using a statically sized array like we do for arguments and ranges. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152639 91177308-0d34-0410-b5e6-96231b3b80d8
2012-03-13Remove unused-but-set variable.Benjamin Kramer
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152633 91177308-0d34-0410-b5e6-96231b3b80d8
2012-03-13Long double is just double on FreeBSD/{PPC,PPC64}.Roman Divacky
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152632 91177308-0d34-0410-b5e6-96231b3b80d8
2012-03-13Tweak linkage order for solaris.David Chisnall
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152627 91177308-0d34-0410-b5e6-96231b3b80d8
2012-03-13Ensure that default arguments are handled correctly in sub scopes. For example:James Molloy
void f () { int g (int a, int b=4); { int g(int a, int b=5); } } should compile. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152621 91177308-0d34-0410-b5e6-96231b3b80d8
2012-03-13Implement [temp.param]p5: the top-level cv-qualifiers on a non-type templateRichard Smith
parameter's declaration are ignored when determining the parameter's type. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152619 91177308-0d34-0410-b5e6-96231b3b80d8
2012-03-13PR11850 + duplicates: don't assume that a function parameter pack expansion isRichard Smith
at the end of the parameter list. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152618 91177308-0d34-0410-b5e6-96231b3b80d8
2012-03-13PR11925: A function can't have a variably-modified return type. Not even in C++.Richard Smith
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152615 91177308-0d34-0410-b5e6-96231b3b80d8
2012-03-13It never makes sense to do a lookup into a LinkageSpecDecl, so assert that weNick Lewycky
don't, and clean up the places that do it. The change to ASTWriter is surprising, but the deleted code is a no-op as of r152608. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152609 91177308-0d34-0410-b5e6-96231b3b80d8
2012-03-13Fix PR10447: lazily building name lookup tables for DeclContexts was broken.Richard Smith
The deferred lookup table building step couldn't accurately tell which Decls should be included in the lookup table, and consequently built different tables in some cases. Fix this by removing lazy building of DeclContext name lookup tables. In practice, the laziness was frequently not worthwhile in C++, because we performed lookup into most DeclContexts. In C, it had a bit more value, since there is no qualified lookup. In the place of lazy lookup table building, we simply don't build lookup tables for function DeclContexts at all. Such name lookup tables are not useful, since they don't capture the scoping information required to correctly perform name lookup in a function scope. The resulting performance delta is within the noise on my testing, but appears to be a very slight win for C++ and a very slight loss for C. The C performance can probably be recovered (if it is a measurable problem) by avoiding building the lookup table for the translation unit. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152608 91177308-0d34-0410-b5e6-96231b3b80d8