Chris Lattner
f35de48c90
when compiling in a GNU mode (e.g. gnu99) treat VLAs with a size that can be folded to a constant
...
as constant size arrays. This has slightly different semantics in some insane cases, but allows
us to accept some constructs that GCC does. Continue to be pedantic in -std=c99 and other
modes. This addressed rdar://8733881 - error "variable-sized object may not be initialized"; g++ accepts same code
llvm-svn: 132983
2011-06-14 06:38:10 +00:00
Sam Weinig
deb55d5123
Fix for PR5185. C99 [*] VLA notation should be disallowed in function definitions.
...
llvm-svn: 94972
2010-02-01 05:02:49 +00:00
Daniel Dunbar
8fbe78f6fc
Update tests to use %clang_cc1 instead of 'clang-cc' or 'clang -cc1'.
...
- This is designed to make it obvious that %clang_cc1 is a "test variable"
which is substituted. It is '%clang_cc1' instead of '%clang -cc1' because it
can be useful to redefine what gets run as 'clang -cc1' (for example, to set
a default target).
llvm-svn: 91446
2009-12-15 20:14:24 +00:00
Eli Friedman
893abe482d
Revert r72575, which isn't really right, and fix up other code to
...
handle the construct in question correctly.
llvm-svn: 72581
2009-05-29 18:22:49 +00:00
Mike Stump
fc30bf9b16
Avoid dumping during semantic analysis when checking array types when
...
a vla is used.
llvm-svn: 72575
2009-05-29 16:34:15 +00:00
Eli Friedman
54135838e2
PR2044: reject declarations of functions returning variably modified
...
types.
llvm-svn: 71941
2009-05-16 12:15:55 +00:00
Eli Friedman
4e2ab55502
Add a bit more handling for declarations like "int a[*]".
...
llvm-svn: 70162
2009-04-26 21:57:51 +00:00
Daniel Dunbar
a45cf5b6b0
Rename clang to clang-cc.
...
Tests and drivers updated, still need to shuffle dirs.
llvm-svn: 67602
2009-03-24 02:24:46 +00:00
Eli Friedman
adf40d4bef
Fix for PR3663/3669: use TryToFixInvalidVariablyModifiedType for
...
variable declarations where applicable. Also, a few fixes to
TryToFixInvalidVariablyModifiedType for issues that this exposed.
llvm-svn: 65500
2009-02-26 03:58:54 +00:00
Douglas Gregor
5d68a20949
Extend the implicit declaration and checking against out-of-scope
...
external declarations to also support external variable
declarations. Unified the code for these two cases into two new
subroutines.
Note that we fail to diagnose cases like the one Neil pointed
out, where a visible non-external declaration hides an external
declaration by the same name. That will require some reshuffling of
name lookup.
llvm-svn: 65385
2009-02-24 19:23:27 +00:00
Chris Lattner
b3582b939e
a minor grammar fix
...
llvm-svn: 60646
2008-12-07 00:59:53 +00:00
Anders Carlsson
0d8f0ba6ed
Improve VLA diagnostics/sema checking. Fixes PR2361 and PR2352.
...
llvm-svn: 60638
2008-12-07 00:20:55 +00:00
Chris Lattner
4fc69799f5
Rewrite FindDiagnostics to be more strict about the formatting of the
...
expected-foo strings. Now the only allowed characters between
expected-error and {{ is whitespace.
llvm-svn: 59925
2008-11-24 01:28:17 +00:00
Chris Lattner
f3ab014308
clean up -verify mode output. If the expected-error string is
...
mangled, report it using the diagnostics machinery instead of printf.
llvm-svn: 59924
2008-11-23 23:38:26 +00:00
Chris Lattner
6515bcc3c6
Fix a FIXME by improving a diagnostic, add a testcase for PR3048
...
llvm-svn: 59167
2008-11-12 21:25:45 +00:00
Chris Lattner
28b4294ccf
wrap some long diagnostics, make 'initializer is not a constant' diagnostic
...
a bit more clear (rdar://5646070)
llvm-svn: 54606
2008-08-10 01:58:45 +00:00
Eli Friedman
0ceef458b6
Fix this test so that it's valid; the point is to test for the crash,
...
not the missing diagnostic.
llvm-svn: 51365
2008-05-21 05:37:55 +00:00
Eli Friedman
0883bfb541
PR2347: Fix crash iterating over VLAs; this started triggering because
...
we now iterate over the whole AST when we destroy it.
llvm-svn: 51363
2008-05-21 05:06:46 +00:00
Chris Lattner
20aad334c7
Fix the location we emit the "not a constant" error for this:
...
int foo() {
typedef int x[foo()];
static int y = sizeof(x);
}
previously we'd emit it on the typedef, which made not sense at all.
llvm-svn: 45154
2007-12-18 07:15:40 +00:00