- Apr 12, 2009
-
-
- Apr 11, 2009
-
-
Chris Lattner authored
a block without a prototype should still coerce a return in it to use the declared return type. llvm-svn: 68875
-
- Apr 09, 2009
-
-
Douglas Gregor authored
No functionality change (really). llvm-svn: 68726
-
-
- Apr 08, 2009
-
-
Steve Naroff authored
Fixes <rdar://problem/6762239> [sema] gcc incompatibility; error on incompatible operand types in ?:. llvm-svn: 68617
-
- Apr 07, 2009
-
-
Fariborz Jahanian authored
the base implementations (and not in current implementation). llvm-svn: 68527
-
Steve Naroff authored
This will simplify clang adoption, and is probably better "etiquette" (since gcc has always accepted this idiom without warning). Once we are over the adoption hurdle, we can turn this into an error. llvm-svn: 68468
-
- Apr 06, 2009
-
-
Douglas Gregor authored
llvm-svn: 68454
-
Chris Lattner authored
a really really bad idea. Now that we emit an error about the unpromoted type, users should be able to understand what is going on. llvm-svn: 68447
-
- Apr 05, 2009
-
-
Chris Lattner authored
diagnostic use the va_list typedef more often, see the difference in the changed testcase. llvm-svn: 68441
-
Chris Lattner authored
llvm-svn: 68435
-
Chris Lattner authored
va_lists for some reason. This fixes rdar://6726818 llvm-svn: 68434
-
- Apr 03, 2009
-
-
Chris Lattner authored
llvm-svn: 68407
-
- Apr 02, 2009
-
-
Douglas Gregor authored
definition, warn if there are too many/too few function call arguments. llvm-svn: 68318
-
Douglas Gregor authored
llvm-svn: 68261
-
- Mar 31, 2009
-
-
Chris Lattner authored
llvm-svn: 68091
-
Chris Lattner authored
disable this feature for now, to err on the side of rejecting instead of sometimes crashing. rdar://6326239 llvm-svn: 68088
-
- Mar 28, 2009
-
-
Chris Lattner authored
pointer. Its purpose in life is to be a glorified void*, but which does not implicitly convert to void* or other OpaquePtr's with a different UID. Introduce Action::DeclPtrTy which is a typedef for OpaquePtr<0>. Change the entire parser/sema interface to use DeclPtrTy instead of DeclTy*. This makes the C++ compiler enforce that these aren't convertible to other opaque types. We should also convert ExprTy, StmtTy, TypeTy, AttrTy, BaseTy, etc, but I don't plan to do that in the short term. The one outstanding known problem with this patch is that we lose the bitmangling optimization where ActionResult<DeclPtrTy> doesn't know how to bitmangle the success bit into the low bit of DeclPtrTy. I will rectify this with a subsequent patch. llvm-svn: 67952
-
Eli Friedman authored
LHS type and the computation result type; this encodes information into the AST which is otherwise non-obvious. Fix Sema to always come up with the right answer for both of these types. Fix IRGen and the analyzer to account for these changes. This fixes PR2601. The approach is inspired by PR2601 comment 2. Note that this changes real *= complex in CodeGen from a silent miscompilation to an explicit error. I'm not really sure that the analyzer changes are correct, or how to test them... someone more familiar with the analyzer should check those changes. llvm-svn: 67889
-
- Mar 27, 2009
-
-
Douglas Gregor authored
to a function or function pointer, it's probably because the user forgot to put in parentheses () to call the function. llvm-svn: 67826
-
rdar://6719156Chris Lattner authored
by changing blocks from being disabled in the parser to being disabled in Sema. llvm-svn: 67816
-
Douglas Gregor authored
llvm-svn: 67800
-
Douglas Gregor authored
uniqued representation that should both save some memory and make it far easier to properly build canonical types for types involving dependent nested-name-specifiers, e.g., "typename T::Nested::type". This approach will greatly simplify the representation of CXXScopeSpec. That'll be next. llvm-svn: 67799
-
- Mar 26, 2009
-
-
rdar://problem/6697053Steve Naroff authored
Treat @package the same as @public. The documentation for @package says it is analogous to private_extern for variables/functions. Fully implementing this requires some kind of linker support (so access is denied to code outside the classes executable image). I don't believe GCC fully implements this semantic. Will discuss with Fariborz offline. llvm-svn: 67755
-
- Mar 24, 2009
-
-
Douglas Gregor authored
types; add another use of RequireCompleteType. llvm-svn: 67644
-
Douglas Gregor authored
incomplete types. RequireCompleteType is needed when the type may be completed by instantiating a template. llvm-svn: 67643
-
- Mar 23, 2009
-
-
Eli Friedman authored
llvm-svn: 67497
-
Eli Friedman authored
incompatibilities in assignments from other pointer incompatibilities. Based off of the patch in PR3342. (This doesn't implement -Wno-pointer-sign, but I don't know the driver code very well.) llvm-svn: 67494
-
Eli Friedman authored
isObjCObjectPointerType to work with qualified types. Adjust test for changes. If the SemaExpr changes are wrong or break existing code, feel free to delete the "ExprTy.addConst();" line and revert my changes to test/Sema/block-literal.c. llvm-svn: 67489
-
- Mar 22, 2009
-
-
Eli Friedman authored
llvm-svn: 67485
-
- Mar 21, 2009
-
-
Douglas Gregor authored
simplify the parsing and action interface for designated initializers. llvm-svn: 67415
-
- Mar 20, 2009
-
-
Ted Kremenek authored
llvm-svn: 67394
-
-
- Mar 19, 2009
-
-
Fariborz Jahanian authored
dot-syntax expression after earching the list of protocols in the qualified-id, must keep searching the protocol list of each of the protocols in the list. llvm-svn: 67314
-
Douglas Gregor authored
dependent qualified-ids such as Fibonacci<N - 1>::value where N is a template parameter. These references are "unresolved" because the name is dependent and, therefore, cannot be resolved to a declaration node (as we would do for a DeclRefExpr or QualifiedDeclRefExpr). UnresolvedDeclRefExprs instantiate to DeclRefExprs, QualifiedDeclRefExprs, etc. Also, be a bit more careful about keeping only a single set of specializations for a class template, and instantiating from the definition of that template rather than a previous declaration. In general, we need a better solution for this for all TagDecls, because it's too easy to accidentally look at a declaration that isn't the definition. We can now process a simple Fibonacci computation described as a template metaprogram. llvm-svn: 67308
-
Douglas Gregor authored
QualifiedNameType and QualifiedDeclRefExpr. We now keep track of the exact nested-name-specifier spelling for a QualifiedDeclRefExpr, and use that spelling when printing ASTs. This fixes PR3493. llvm-svn: 67283
-
Douglas Gregor authored
qualified name, e.g., foo::x so that we retain the nested-name-specifier as written in the source code and can reproduce that qualified name when printing the types back (e.g., in diagnostics). This is PR3493, which won't be complete until finished the other tasks mentioned near the end of this commit. The parser's representation of nested-name-specifiers, CXXScopeSpec, is now a bit fatter, because it needs to contain the scopes that precede each '::' and keep track of whether the global scoping operator '::' was at the beginning. For example, we need to keep track of the leading '::', 'foo', and 'bar' in ::foo::bar::x The Action's CXXScopeTy * is no longer a DeclContext *. It's now the opaque version of the new NestedNameSpecifier, which contains a single component of a nested-name-specifier (either a DeclContext * or a Type *, bitmangled). The new sugar type QualifiedNameType composes a sequence of NestedNameSpecifiers with a representation of the type we're actually referring to. At present, we only build QualifiedNameType nodes within Sema::getTypeName. This will be extended to other type-constructing actions (e.g., ActOnClassTemplateId). Also on the way: QualifiedDeclRefExprs will also store a sequence of NestedNameSpecifiers, so that we can print out the property nested-name-specifier. I expect to also use this for handling dependent names like Fibonacci<I - 1>::value. llvm-svn: 67265
-
- Mar 18, 2009
-
-
Douglas Gregor authored
Type pointer. This allows our nested-name-specifiers to retain more information about the actual spelling (e.g., which typedef did the user name, or what exact template arguments were used in the template-id?). It will also allow us to have dependent nested-name-specifiers that don't map to any DeclContext. llvm-svn: 67140
-
- Mar 15, 2009
-
-
Sebastian Redl authored
Convert a bunch of actions to smart pointers, and also bring PrintParserCallbacks a bit more in line with reality. llvm-svn: 67029
-