- Mar 23, 2009
-
-
Ted Kremenek authored
llvm-svn: 67573
-
Ted Kremenek authored
llvm-svn: 67569
-
Anders Carlsson authored
More improvements to abstract type checking. Handle arrays correctly, and make sure to check parameter types before they decay. llvm-svn: 67550
-
Anders Carlsson authored
llvm-svn: 67542
-
Douglas Gregor authored
library function, accept this declaration and pretend that we do not know that this is a library function. autoconf depends on this (broken) behavior. llvm-svn: 67541
-
Douglas Gregor authored
prototype. Thanks Eli! llvm-svn: 67533
-
Douglas Gregor authored
llvm-svn: 67530
-
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
-
Sebastian Redl authored
llvm-svn: 67492
-
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
-
-
Sebastian Redl authored
llvm-svn: 67487
-
Eli Friedman authored
llvm-svn: 67485
-
Sebastian Redl authored
llvm-svn: 67480
-
Anders Carlsson authored
llvm-svn: 67476
-
Anders Carlsson authored
Keep track of whether a class is abstract or not. This is currently only used for the __is_abstract type trait. llvm-svn: 67461
-
- Mar 21, 2009
-
-
Douglas Gregor authored
lists. The code wasn't accounting for the distinction between the top-level call to getStructuredSubobjectInit and later calls that occur deeper in the hierarchy. This problem manifested itself as over-allocation in cases where we have large arrays of small structures (<rdar://problem/6707362>). llvm-svn: 67452
-
Fariborz Jahanian authored
category or protocol. llvm-svn: 67450
-
Douglas Gregor authored
its vectors based on the subobject type we're initializing and the (unstructured) initializer list. This eliminates some malloc thrashing when parsing initializers (from 117 vector reallocations down to 0 when parsing Cocoa.h). We can't always pre-allocate the right amount of storage, since designated initializers can cause us to initialize in non-predictable patterns. llvm-svn: 67421
-
Douglas Gregor authored
simplify the parsing and action interface for designated initializers. llvm-svn: 67415
-
- Mar 20, 2009
-
-
Douglas Gregor authored
variant of DiagnosticBuilder that emits the template instantiation backtrace when needed. llvm-svn: 67413
-
rdar://problem/6704086Ted Kremenek authored
allow non-literal format strings that are variables that (a) permanently bind to a string constant and (b) whose string constants are resolvable within the same translation unit. llvm-svn: 67404
-
Ted Kremenek authored
llvm-svn: 67394
-
-
Douglas Gregor authored
braces. We now build the appropriate fully-structured initializer list for such things. Per PR3618, verified that we're getting the right code generation. llvm-svn: 67353
-
- Mar 19, 2009
-
-
Douglas Gregor authored
there is a previous declaration marked "static". This fixes PR3645. llvm-svn: 67336
-
Douglas Gregor authored
llvm-svn: 67316
-
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
F f; where F is a typedef of a function type, then the function "f" has a prototype. This is a slight tweak to Chris's suggested fix in PR3817. Fixes PR3817 and PR3840. llvm-svn: 67313
-
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
specialization names. This way, we keep track of sugared types like std::vector<Real> I believe we are now using QualifiedNameTypes everywhere we can. Next step: QualifiedDeclRefExprs. llvm-svn: 67268
-
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
-
Gabor Greif authored
Use the instantiated expressions to build the ConditionalOperator. This addresses the second part of review feedback. llvm-svn: 67259
-
- Mar 18, 2009
-
-
Fariborz Jahanian authored
whose sema decl is at the translation unit. llvm-svn: 67249
-
Gabor Greif authored
llvm-svn: 67226
-
Gabor Greif authored
llvm-svn: 67216
-
Mike Stump authored
llvm-svn: 67214
-
Mike Stump authored
llvm-svn: 67205
-
Gabor Greif authored
llvm-svn: 67148
-