aboutsummaryrefslogtreecommitdiff
path: root/test/Sema
AgeCommit message (Collapse)Author
2009-05-29Revert r72575, which isn't really right, and fix up other code to Eli Friedman
handle the construct in question correctly. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72581 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-29Avoid dumping during semantic analysis when checking array types whenMike Stump
a vla is used. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72575 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-27restrict is not a keyword in gnu89 mode. Change TokenKinds.def to Eli Friedman
reflect that. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72500 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-25Extend getPreferredTypeAlign to handle _Complex double and long long Eli Friedman
correctly. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72401 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-25merge two tests.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72392 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-25reword a warning for clarityChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72391 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-22Add -fblocks for the test.Argyrios Kyrtzidis
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72280 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-22Parse typeof-specifier the same way as sizeof/alignof are parsed.Argyrios Kyrtzidis
-Makes typeof consistent with sizeof/alignof -Fixes a bug when '>' is in a typeof expression, inside a template type param: A<typeof(x>1)> a; git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72255 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-21Check on null arguments in the presense of nonnull attribute.Fariborz Jahanian
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72219 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-19Patch finishes off application of printf attribute on blocks.Fariborz Jahanian
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72111 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-19Remove the -arch option from clang-cc: for all practical purposes, it's Eli Friedman
redundant with -triple. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72108 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-16Add stricter checking for va_arg.Eli Friedman
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@71942 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-16PR2044: reject declarations of functions returning variably modified Eli Friedman
types. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@71941 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-16PR3009: Get rid of bogus warning for scalar compound literals.Eli Friedman
This patch isn't quite ideal in that it eliminates the warning for constructs like "int a = {1};", where the braces are in fact redundant. However, that would have required a bunch of refactoring, and it's much less likely to cause confusion compared to redundant nested braces. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@71939 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-15improved on diagnosing misplacement of sentinel attributes.Fariborz Jahanian
No change in functionality. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@71894 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-15added -fblocks to the test.Fariborz Jahanian
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@71890 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-15This patch finishes off the sentinel attribute handling forFariborz Jahanian
blocks and function pointers. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@71888 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-14Adds recognition of sentinel attribute on block declarations.Fariborz Jahanian
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@71788 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-14Diagnose missing sentinel argument on a funciton callFariborz Jahanian
with sentinel attribute. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@71778 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-13Add a test case to showcase a difference in #pragma pack handlingDaniel Dunbar
compared to gcc. This is worrisome, but I believe we are doing the "correct" thing, and if I recall correctly I previously verified this versus MSVC. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@71723 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-13Fix <rdar://problem/6880975> [format string] Assertion failed: (Arg < ↵Ted Kremenek
NumArgs && "Arg access out of range!"). For format string checking, only check the type of the format specifier for non-vararg functions. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@71672 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-13Fix rdar://6880951 by rejecting vectors of vectors.Chris Lattner
It seems dubious to me that isIntegerType() returns true for vectors of integers, but not complex integers. This should probably be rethought, I'll file a bugzilla. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@71640 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-13reject use of the GNU _Decimal32 extension with a diagnostic, not an abort.Chris Lattner
rdar://6880104 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@71639 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-13Fix rdar://6880874 - [sema] crash on array types with different index sizesChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@71634 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-13Fix rdar://6881069, a crash on a form of vector_size that weChris Lattner
don't support. While it would be nice to support this eventually, this form is not common at all (just seen in gcc testsuite) and it might be better to model vector_size as a type attribute anyway. For now just emit a nice error on it. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@71633 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-12improve the diagnostic for uses of the GCC "global variable in a register" ↵Chris Lattner
extension. This implements rdar://6880449 - improve diagnostic for usage of "global register variable" GCC extension git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@71599 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-08Fix the atomics sema code to convert operands to the argument typesChris Lattner
of the underlying _N builtin, not the the type of the pointee of the actual type. This ensures that atomics involving pointers end up using the correct integer type when they are resolved, avoiding aborts in codegen. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@71218 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-08reimplement __sync_* builtins to be variadic and to follow the sameChris Lattner
semantic rules that gcc and icc use. This implements the variadic and concrete versions as builtins and has sema do the disambiguation. There are probably a bunch of details to finish up but this seems like a large monotonic step forward :) git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@71212 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-07Allow qualifiers on blocks. Radar 6441502Mike Stump
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@71183 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-07Tighten up relationals with blocks and ints. Radar 6441502Mike Stump
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@71171 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-07Improve semantic checking for blocks. Radar 6441502Mike Stump
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@71145 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-06Improve handling of (X86) target features.Daniel Dunbar
- This is a WIP... - This adds -march= handling to the driver, and fixes the defaulting of -mcpu on Darwin (which was using the wrong test). Instead of handling -m{sse, ...} in the driver, pass them to clang-cc as -target-feature [+-]name In clang-cc, communicate with the (clang) target to discover the legal features of a target, and the features which are enabled based on -mcpu. This is currently hardcoded just enough to not be a feature regression, we need to get this information from the backend's TableGen information somehow. This is used to construct the full list of features which are being used, which is in turn used to initialize the predefines. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@71061 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-03PR2524: downgrade taking address of expression of type 'void' to an Eli Friedman
extension warning. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70805 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-03If we have mismatched integer tied operands, but the operandChris Lattner
number is not mentioned in the asm string, let it past sema. Right now these are currently rejected by the llvm code generator but this will be fixed next. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70670 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-02When determining whether an expression refers to a bit-field, lookDouglas Gregor
into the left-hand side of an assignment expression. This completes most of PR3500; the only remaining part is to deal with the GCC-specific implementation-defined behavior for "unsigned long" (and other) bit-fields. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70623 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-02Fix bitfield promotions in several more cases. We don't seem to work hard ↵Douglas Gregor
enough at determining whether an expression is a bitfield or not, yet. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70613 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-01Add Sema checking for __block on vm declarations. Radar 6441502Mike Stump
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70601 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-01Implement bit-field promotion rules for C99. Fixes PR3500.Douglas Gregor
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70571 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-01PR4013 and PR4105: pointer-like types can only be cast to/from integers Eli Friedman
and other pointer-like types. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70531 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-30Name the "return-type" DiagGroup and reference it in a few places.Steve Naroff
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70500 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-30Properly compute the alignment of typedefs that make use of theDouglas Gregor
"aligned" attribute. Previously, we were skipping over these attributes when we jumped directly to the canonical type. Now, ASTContext::getTypeInfo walks through typedefs and other "non-canonical" types manually, looking for "aligned" attributes on typedefs. As part of this change, I moved the GNU-specific logic (such as determining the alignment of void or of a function pointer) out of the expression evaluator and into ASTContext::getTypeInfo. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70497 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-30Warn about invalid return statements by default.Steve Naroff
This fixes <rdar://problem/6839489> 10A345: Clang does not warm about mismatched returns (void return from a bool function) Will implement -Wreturn-type, -Wno-return-type in another commit. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70492 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-30only support int128_t on 64-bit and larger targets. 32-bit targets don'tChris Lattner
have support for __divti3 and friends. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70480 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-30initial support for __[u]int128_t, which should be basicallyChris Lattner
compatible with VC++ and GCC. The codegen/mangling angle hasn't been fully ironed out yet. Note that we accept int128_t even in 32-bit mode, unlike gcc. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70464 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-30Sema checking for incorrect placement of __block. Radar 6441502Mike Stump
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70452 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-29Implement semantic analysis for transparent unions. This is largelyDouglas Gregor
based on a patch from Anders Johnsen. CodeGen support is incomplete, in that we do not properly coerce to the first field's type. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70419 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-29Fixup Sema and CodeGen for block literal attributes when the returnMike Stump
type and argument types are missing, and let return type deduction happen before we give errors for returning from a noreturn block. Radar 6441502 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70413 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-29Sema and CodeGen support for attributes on blocks. Radar 6441502Mike Stump
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70403 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-29Fix PR4092 by improving error recovery in two ways:Chris Lattner
1. In a struct field redefinition, don't mark the struct erroneous. The field is erroneous, but the struct is otherwise well formed. 2. Don't emit diagnostics about functions that are known to be broken already. Either fix is sufficient to silence the second diagnostic in the example, but the combination is better :) git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70371 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-29implement -Wformat-security properly, which is enabled by default.Chris Lattner
This enables one specific class of non-literal format warnings. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70368 91177308-0d34-0410-b5e6-96231b3b80d8