aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2011-06-01Microsoft friend acting as a forward declaration; try#2. Now only 2 lines.Francois Pichet
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@132387 91177308-0d34-0410-b5e6-96231b3b80d8
2011-06-01Fix broken test on windows. To get operator new working, we need size_t, for ↵Manuel Klimek
which we need to figure out a way to resolve standard include paths in the test. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@132386 91177308-0d34-0410-b5e6-96231b3b80d8
2011-06-01Fixes Makefile based build for examples/Tooling.Manuel Klimek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@132380 91177308-0d34-0410-b5e6-96231b3b80d8
2011-06-01Put Parse before Sema on the link line since parse depends on sema.Nick Lewycky
Also reflow these lines to fit in 80-col. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@132379 91177308-0d34-0410-b5e6-96231b3b80d8
2011-06-01Fix test breakage due to example not being built.Manuel Klimek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@132376 91177308-0d34-0410-b5e6-96231b3b80d8
2011-05-31This patch implements an AST matching framework that allows to writeManuel Klimek
tools that match on the C++ ASTs. The main interface is in ASTMatchers.h, an example implementation of a tool that removes redundant .c_str() calls is in the example RemoveCStrCalls.cpp. Various contributions: Zhanyong Wan, Chandler Carruth, Marcin Kowalczyk, Wei Xu, James Dennett. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@132374 91177308-0d34-0410-b5e6-96231b3b80d8
2011-05-31Fix test, check for stable strings in the output.Devang Patel
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@132370 91177308-0d34-0410-b5e6-96231b3b80d8
2011-05-31Revert 132332 (Microsoft friend as a forward declaration), John McCall ↵Francois Pichet
pointed out a better/simpler way to do it. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@132369 91177308-0d34-0410-b5e6-96231b3b80d8
2011-05-31Robustify objc method type description (subroutine type) by walking ↵Devang Patel
parameters directly. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@132368 91177308-0d34-0410-b5e6-96231b3b80d8
2011-05-31List objective-c ineterfaces as public types in dwarf debug info output.Devang Patel
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@132361 91177308-0d34-0410-b5e6-96231b3b80d8
2011-05-31List c++ class type as public type in dwarf debug info output.Devang Patel
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@132357 91177308-0d34-0410-b5e6-96231b3b80d8
2011-05-31Ensure we enter an unevaluated context when instantiating a noexceptSean Hunt
expression. Fixes bug raised by hhinnant to cfe-dev git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@132350 91177308-0d34-0410-b5e6-96231b3b80d8
2011-05-31Driver/Clang: Simplify code to use arch enumerations.Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@132338 91177308-0d34-0410-b5e6-96231b3b80d8
2011-05-31Recreate the DeclContext before adding the implicit friend forward ↵Francois Pichet
declaration. This should fix the asserting buildbot. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@132333 91177308-0d34-0410-b5e6-96231b3b80d8
2011-05-31For compatibility with MSVC, a friend declaration also act as a forward ↵Francois Pichet
declaration if the tag name is not already declared. The tag name is declared in the next outermost non record scope. Example: class A { friend class B; B* b; }; B* global_b; git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@132332 91177308-0d34-0410-b5e6-96231b3b80d8
2011-05-31Whenever we instantiate a static data member, make sure to define any newNick Lewycky
vtables! Fixes PR10020 This also allows us to revert the part of r130023 which added a big loop around the template instantiation. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@132331 91177308-0d34-0410-b5e6-96231b3b80d8
2011-05-31Now with the right line endings.Galina Kistanova
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@132330 91177308-0d34-0410-b5e6-96231b3b80d8
2011-05-31Fix linking of clang-wpa.Zhongxing Xu
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@132329 91177308-0d34-0410-b5e6-96231b3b80d8
2011-05-31Expand the coverage of the warning for constants on the RHS of logical operands:Chandler Carruth
return f() || -1; where the user meant to write '|'. This bootstraps without any additional warnings. Patch by Richard Trieu. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@132327 91177308-0d34-0410-b5e6-96231b3b80d8
2011-05-31Utilize PackedVector, introduced with llvm commit r132325.Argyrios Kyrtzidis
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@132326 91177308-0d34-0410-b5e6-96231b3b80d8
2011-05-31Just one for now to see how it will fly.Galina Kistanova
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@132321 91177308-0d34-0410-b5e6-96231b3b80d8
2011-05-31For X86 specific tests.Galina Kistanova
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@132320 91177308-0d34-0410-b5e6-96231b3b80d8
2011-05-31Preparations for separating target-specific clang tests.Galina Kistanova
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@132319 91177308-0d34-0410-b5e6-96231b3b80d8
2011-05-30Fix another incorrect type bug.David Chisnall
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@132311 91177308-0d34-0410-b5e6-96231b3b80d8
2011-05-29Add a new warning on NULL pointer constant to integer conversion.Richard Trieu
This path was reviewed by Chandler Carruth at http://codereview.appspot.com/4538074/ git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@132297 91177308-0d34-0410-b5e6-96231b3b80d8
2011-05-29Fix a regression in the source locations for unary trait expressions.Chandler Carruth
I tried to use an assert to prove that I could remove each of the arguments I did, but ended up writing my assert with inverted logic. Doh! Reported by Xi Wang on cfe-dev. I have manually verified the source locations and ranges for these using -ast-dump. I tried writing a test case that would catch these, but these expressions aren't exposed in the c-index-test's token annotation utility. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@132284 91177308-0d34-0410-b5e6-96231b3b80d8
2011-05-28Convert Clang over to resuming from landing pads with llvm.eh.resume.John McCall
It's quite likely that this will explode, but I need to know how. :) git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@132269 91177308-0d34-0410-b5e6-96231b3b80d8
2011-05-28make this a bit less confusingChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@132262 91177308-0d34-0410-b5e6-96231b3b80d8
2011-05-28Eliminate temporary argument vectors.Benjamin Kramer
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@132260 91177308-0d34-0410-b5e6-96231b3b80d8
2011-05-28Fix another type mismatch.David Chisnall
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@132259 91177308-0d34-0410-b5e6-96231b3b80d8
2011-05-28Fix missing cast.David Chisnall
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@132258 91177308-0d34-0410-b5e6-96231b3b80d8
2011-05-28Add support for ARM ldrexd/strexd builtinsBruno Cardoso Lopes
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@132249 91177308-0d34-0410-b5e6-96231b3b80d8
2011-05-28Add a couple of helper methods in the SourceManager API, ↵Argyrios Kyrtzidis
isAtStartOfMacroInstantiation/isAtEndOfMacroInstantiation useful only for source locations that point at a macro token. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@132247 91177308-0d34-0410-b5e6-96231b3b80d8
2011-05-27Clean up a C++0x/C++03 conditional check.Douglas Gregor
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@132229 91177308-0d34-0410-b5e6-96231b3b80d8
2011-05-27Add unnamed_addr to internal globals which are only used as an operand to ↵Eli Friedman
memcpy. (Spotted by looking at IR.) git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@132226 91177308-0d34-0410-b5e6-96231b3b80d8
2011-05-27Match llvm-gcc's string literals alignment by forcing alignment on string ↵Eli Friedman
literals to 1. This can significantly impact the size of the string data, and as far as I know, the alignment doesn't help performance. rdar://9078969 . git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@132223 91177308-0d34-0410-b5e6-96231b3b80d8
2011-05-27Back out r132209; it's breaking nightly tests.Eli Friedman
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@132219 91177308-0d34-0410-b5e6-96231b3b80d8
2011-05-27Clean up my changes to jump-diagnostic handling for local variables ofDouglas Gregor
class type (or array thereof), eliminating some redundant checks (thanks Eli!) and adding some tests where the behavior differs in C++98/03 vs. C++0x. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@132218 91177308-0d34-0410-b5e6-96231b3b80d8
2011-05-27Implement a new, much improved version of the cleanup hack. We just needJohn McCall
to be careful to emit landing pads that are always prepared to handle a cleanup path. This is correct mostly because of the fix to the LLVM inliner, r132200. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@132209 91177308-0d34-0410-b5e6-96231b3b80d8
2011-05-27Add assertions to verify that we are not trying to instantiate aSean Hunt
nontemplate in Sema::InstantiateTemplateDecl. This should make the issue in PR10026 more visible, although it's not going to fix it because something is violating this precondition. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@132208 91177308-0d34-0410-b5e6-96231b3b80d8
2011-05-27Update the jump-scope checker for local variables with initializers,Douglas Gregor
so that it looks at the initializer of a local variable of class type (or array thereof) to determine whether it's just an implicit invocation of the trivial default constructor. Fixes PR10034. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@132191 91177308-0d34-0410-b5e6-96231b3b80d8
2011-05-27Add an additional check for null pointer before accessing PatternDecl.Richard Trieu
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@132175 91177308-0d34-0410-b5e6-96231b3b80d8
2011-05-27Enhance Clang to start instantiating static data member definitionsChandler Carruth
within class templates when they are necessary to complete the type of the member. The canonical example is code like: template <typename T> struct S { static const int arr[]; static const int x; static int f(); }; template <typename T> const int S<T>::arr[] = { 1, 2, 3 }; template <typename T> const int S<T>::x = sizeof(arr) / sizeof(arr[0]); template <typename T> int S<T>::f() { return x; } int x = S<int>::f(); We need to instantiate S<T>::arr's definition to pick up its initializer and complete the array type. This involves new code to specially handle completing the type of an expression where the type alone is insufficient. It also requires *updating* the expression with the newly completed type. Fortunately, all the other infrastructure is already in Clang to do the instantiation, do the completion, and prune out the unused bits of code that result from this instantiation. This addresses the initial bug in PR10001, and will be a step to fleshing out other cases where we need to work harder to complete an expression's type. Who knew we still had missing C++03 "features"? git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@132172 91177308-0d34-0410-b5e6-96231b3b80d8
2011-05-27Objective-C doesn't consider the use of incomplete types as methodDouglas Gregor
parameter types to be ill-formed. However, it relies on the completeness of method parameter types when producing metadata, e.g., for a protocol, leading IR generating to crash in such cases. Since there's no real way to tighten down the semantics of Objective-C here without breaking existing code, do something safe but lame: suppress the generation of metadata when this happens. Fixes <rdar://problem/9123036>. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@132171 91177308-0d34-0410-b5e6-96231b3b80d8
2011-05-26Silence sign compare warning.Benjamin Kramer
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@132146 91177308-0d34-0410-b5e6-96231b3b80d8
2011-05-26Change the include stack of "instantiated from" notes to fall under the ↵Richard Trieu
control of f/fno-diagnostics-show-note-include-stack flags. This should help with reducing diagnostic spew from macros instantiations. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@132143 91177308-0d34-0410-b5e6-96231b3b80d8
2011-05-26Add a fix-it and better error recovery for improperly nested namespaces. ↵Richard Trieu
This will give a better error message for cases such as "namespace foo::bar::baz {}" and a suggested fix-it of "namespace foo { namespace bar { namespace baz {} } }" git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@132138 91177308-0d34-0410-b5e6-96231b3b80d8
2011-05-26Tighen analyzer diagnostics w.r.t ObjC/CF leaks.Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@132130 91177308-0d34-0410-b5e6-96231b3b80d8
2011-05-26Extract two more methods from the unary type trait checking. TheseChandler Carruth
provide re-usable forms of the rest of the custom validation done here. Still no functionality changed here. With this it should be possible to have an expression-centric code path and a type-centric code path which don't duplicate logic. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@132118 91177308-0d34-0410-b5e6-96231b3b80d8
2011-05-26Remove a no longer relevant comment. It was just repeating theChandler Carruth
information in the previous comment which was preserved and moved with the vec_step implementation code. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@132117 91177308-0d34-0410-b5e6-96231b3b80d8