- Apr 10, 2009
-
-
rdar://problem/6777003Ted Kremenek authored
clients of the analyzer to designate custom assertion routines as "noreturn" functions from the analyzer's perspective but not the compiler's. llvm-svn: 68746
-
- Apr 09, 2009
-
-
Douglas Gregor authored
No functionality change (really). llvm-svn: 68726
-
- Apr 04, 2009
-
-
Anton Korobeynikov authored
llvm-svn: 68424
-
Anton Korobeynikov authored
llvm-svn: 68414
-
Anton Korobeynikov authored
llvm-svn: 68413
-
- Mar 27, 2009
-
-
Eli Friedman authored
remove a redundant error in CodeGen. llvm-svn: 67868
-
Fariborz Jahanian authored
ir gen. No intended change in functionality. llvm-svn: 67857
-
- Mar 18, 2009
-
-
Mike Stump authored
llvm-svn: 67214
-
Mike Stump authored
llvm-svn: 67205
-
Chris Lattner authored
discovered as part of PR3817 llvm-svn: 67127
-
- Mar 06, 2009
-
-
Daniel Dunbar authored
- Also, diagnose weak applied to types. llvm-svn: 66259
-
- Mar 04, 2009
-
-
Chris Lattner authored
decls. This reduces the number of calls to malloc on cocoa.h with pth and -disable-free from 15958 to 12444 times (down ~3500). llvm-svn: 66023
-
- Mar 03, 2009
-
-
Eli Friedman authored
while I was at it. There are still a lot of diagnostics missing from this code, and it isn't completely correct for anything other than x86, but it should work correctly on x86 for valid cases. llvm-svn: 65935
-
- Feb 27, 2009
-
-
Douglas Gregor authored
giving them rough classifications (normal types, never-canonical types, always-dependent types, abstract type representations) and making it far easier to make sure that we've hit all of the cases when decoding types. Switched some switch() statements on the type class over to using this mechanism, and filtering out those things we don't care about. For example, CodeGen should never see always-dependent or non-canonical types, while debug info generation should never see always-dependent types. More switch() statements on the type class need to be moved over to using this approach, so that we'll get warnings when we add a new type then fail to account for it somewhere in the compiler. As part of this, some types have been renamed: TypeOfExpr -> TypeOfExprType FunctionTypeProto -> FunctionProtoType FunctionTypeNoProto -> FunctionNoProtoType There shouldn't be any functionality change... llvm-svn: 65591
-
- Feb 25, 2009
-
-
Anders Carlsson authored
llvm-svn: 65461
-
- Feb 20, 2009
-
-
Chris Lattner authored
interfaces more consistently. llvm-svn: 65138
-
- Feb 19, 2009
-
-
Anders Carlsson authored
llvm-svn: 65055
-
- Feb 18, 2009
-
-
Daniel Dunbar authored
This knocks out another 8 gcc/compat/i386 & x86_64 failures. llvm-svn: 64947
-
Fariborz Jahanian authored
This make warn-weak-field.m to fail (subject of a followup patch). attr-objc-gc.m no passes. llvm-svn: 64925
-
- Feb 17, 2009
-
-
Ted Kremenek authored
llvm-svn: 64831
-
Daniel Dunbar authored
llvm-svn: 64700
-
- Feb 14, 2009
-
-
Chris Lattner authored
We don't have "zero cost" exceptions for ObjC yet, so there is no codegen support required. llvm-svn: 64546
-
Chris Lattner authored
1) implement parser and sema support for reading and verifying attribute(warnunusedresult). 2) rename hasLocalSideEffect to isUnusedResultAWarning, inverting the sense of its result. 3) extend isUnusedResultAWarning to directly return the loc and range info that should be reported to the user. Make it substantially more precise in some cases than what was previously reported. 4) teach isUnusedResultAWarning about CallExpr to decls that are pure/const/warnunusedresult, fixing a fixme. 5) change warn_attribute_wrong_decl_type to not pass in english strings, instead, pass in integers and use %select. llvm-svn: 64543
-
- Feb 13, 2009
-
-
Daniel Dunbar authored
__attribute__((used))". llvm-svn: 64499
-
Daniel Dunbar authored
llvm-svn: 64478
-
Anders Carlsson authored
llvm-svn: 64447
-
Anders Carlsson authored
llvm-svn: 64446
-
Anders Carlsson authored
llvm-svn: 64445
-
Anders Carlsson authored
llvm-svn: 64441
-
Eli Friedman authored
Currently only used for 128-bit integers. Note that we can't use the fixed-width integer types for other integer modes without other changes because glibc headers redefines (u)int*_t and friends using the mode attribute. For example, this means that uint64_t has to be compatible with unsigned __attribute((mode(DI))), and uint64_t is currently defined to long long. And I have a feeling we'll run into issues if we try to define uint64_t as something which isn't either long or long long. This doesn't get the alignment right in most cases, including the 128-bit integer case; I'll file a PR shortly. The gist of the issue is that the targets don't really expose the information necessary to figure out the alignment outside of the target description, so there's a non-trivial amount of work involved in getting it working right. That said, the alignment used is conservative, so the only issue with the current implementation is ABI compatibility. This makes it trivial to add some sort of "bitwidth" attribute to make arbitrary-width integers; I'll do that in a followup. We could also use this for stuff like the following for compatibility with gcc, but I have a feeling it would be a better idea for clang to be consistent between C and C++ modes rather than follow gcc's example for C mode. struct {unsigned long long x : 33;} x; unsigned long long a(void) {return x.x+1;} llvm-svn: 64434
-
- Feb 12, 2009
-
-
Daniel Dunbar authored
llvm-svn: 64380
-
Douglas Gregor authored
This commit adds a new attribute, "overloadable", that enables C++ function overloading in C. The attribute can only be added to function declarations, e.g., int *f(int) __attribute__((overloadable)); If the "overloadable" attribute exists on a function with a given name, *all* functions with that name (and in that scope) must have the "overloadable" attribute. Sets of overloaded functions with the "overloadable" attribute then follow the normal C++ rules for overloaded functions, e.g., overloads must have different parameter-type-lists from each other. When calling an overloaded function in C, we follow the same overloading rules as C++, with three extensions to the set of standard conversions: - A value of a given struct or union type T can be converted to the type T. This is just the identity conversion. (In C++, this would go through a copy constructor). - A value of pointer type T* can be converted to a value of type U* if T and U are compatible types. This conversion has Conversion rank (it's considered a pointer conversion in C). - A value of type T can be converted to a value of type U if T and U are compatible (and are not both pointer types). This conversion has Conversion rank (it's considered to be a new kind of conversion unique to C, a "compatible" conversion). Known defects (and, therefore, next steps): 1) The standard-conversion handling does not understand conversions involving _Complex or vector extensions, so it is likely to get these wrong. We need to add these conversions. 2) All overloadable functions with the same name will have the same linkage name, which means we'll get a collision in the linker (if not sooner). We'll need to mangle the names of these functions. llvm-svn: 64336
-
- Feb 08, 2009
-
-
Anders Carlsson authored
llvm-svn: 64047
-
- Feb 04, 2009
-
-
Douglas Gregor authored
- Changes Lookup*Name functions to return NamedDecls, instead of Decls. Unfortunately my recent statement that it will simplify lot of code, was not quite right, but it simplifies some... - Makes MergeLookupResult SmallPtrSet instead of vector, following Douglas suggestions. - Adds %qN format for printing qualified names to Diagnostic. - Avoids searching for using-directives in Scopes, which are not DeclScope, during unqualified name lookup. llvm-svn: 63739
-
- Jan 31, 2009
-
-
Anders Carlsson authored
llvm-svn: 63462
-
- Jan 29, 2009
-
-
Chris Lattner authored
redundant #includes. Patch by Anders Johnsen! llvm-svn: 63271
-
- Jan 27, 2009
-
-
Chris Lattner authored
.def file for each library. This means that adding a diagnostic to sema doesn't require all the other libraries to be rebuilt. Patch by Anders Johnsen! llvm-svn: 63111
-
- Jan 14, 2009
-
-
Fariborz Jahanian authored
objects as an objective-c object. llvm-svn: 62197
-
- Dec 26, 2008
-
-
Anton Korobeynikov authored
Patch by Ilya Okonsky llvm-svn: 61437
-
- Dec 23, 2008
-
-
Anton Korobeynikov authored
Patch by Ilya Okonsky! llvm-svn: 61394
-