Douglas Gregor
d8e97def58
When calling a function without a prototype for which we have a
...
definition, warn if there are too many/too few function call
arguments.
llvm-svn: 68318
2009-04-02 15:37:10 +00:00
Douglas Gregor
ac1fb65d0c
Make sure to use RequireCompleteType rather than testing for
...
incomplete types. RequireCompleteType is needed when the type may be
completed by instantiating a template.
llvm-svn: 67643
2009-03-24 19:52:54 +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
9ad7244f5b
Check that the return type for function definitions is complete.
...
llvm-svn: 66027
2009-03-04 07:30:59 +00:00
Douglas Gregor
e62c0a45dd
Improve merging of function declarations. Specifically:
...
- When we are declaring a function in local scope, we can merge with
a visible declaration from an outer scope if that declaration
refers to an entity with linkage. This behavior now works in C++
and properly ignores entities without linkage.
- Diagnose the use of "static" on a function declaration in local
scope.
- Diagnose the declaration of a static function after a non-static
declaration of the same function.
- Propagate the storage specifier to a function declaration from a
prior declaration (PR3425)
- Don't name-mangle "main"
llvm-svn: 65360
2009-02-24 01:23:02 +00:00
Douglas Gregor
4ab311dc30
Note the Radar number that corresponds to PR3137
...
llvm-svn: 63754
2009-02-04 19:10:27 +00:00
Eli Friedman
cddff7fd62
Test for PR3137.
...
llvm-svn: 63749
2009-02-04 18:50:00 +00:00
Douglas Gregor
9aa8904a46
Handle any undeclared parameters in a K&R-style function with a
...
special action, inside function prototype scope. This avoids confusion
when we try to inject these parameters into the scope of the function
body before the function itself has been added to the surrounding
scope. Fixes <rdar://problem/6097326>.
llvm-svn: 62849
2009-01-23 16:23:13 +00:00
Chris Lattner
27e5beff70
Merge function-return.c into function.c
...
Fix PR2790 by making a warning an EXTWARN instead of EXTENSION.
Add a new EXTENSION warning for "return (some void expression);"
llvm-svn: 61187
2008-12-18 02:01:17 +00:00
Chris Lattner
3d72297909
diagnose C99 6.9.1p5, C arguments in definitions that are lacking
...
a name. This implements PR3208.
llvm-svn: 61127
2008-12-17 07:32:46 +00:00
Chris Lattner
0369c57ac6
Make all the 'redefinition' diagnostics more consistent, and make the
...
"previously defined here" diagnostics all notes.
llvm-svn: 59920
2008-11-23 23:12:31 +00:00
Chris Lattner
9d51f2b9d4
Fix handling of implicit int, resolving PR2012 and reverting (and
...
subsuming) my patch for PR1999.
llvm-svn: 49251
2008-04-05 06:32:51 +00:00
Chris Lattner
b080ed504e
Fix PR2042. One remaining issue: we don't currently diagnose
...
int foobar(int);
int foobar() {}
which requires ifdef'ing out a testcase in predefined-function.c.
llvm-svn: 47236
2008-02-17 19:31:09 +00:00
Eli Friedman
78e47634b2
Get rid of outdated code that masks type errors. Fixes PR2036.
...
llvm-svn: 47154
2008-02-15 06:56:02 +00:00
Chris Lattner
7b8134f5c6
Fix PR1999, by emitting a hard error only if an argument declarator is completely
...
missing. Otherwise, it is an implicit int case, which is valid in c90 and invalid
elsewhere, but accepted as an extension.
llvm-svn: 46938
2008-02-10 23:08:00 +00:00
Chris Lattner
4973fb9273
Fix a bogus test
...
llvm-svn: 46602
2008-01-31 06:06:29 +00:00
Steve Naroff
ddb1dd8c5f
Tighten up ASTContext::typesAreCompatible()...it needs to make sure the qualifiers match. The comment and C99 citation for this routine were correct...the code needed to conform to the comment/spec. This fixes the test added below.
...
Tightening up this routine forced tweaks to Sema::CheckSubtractionOperands() and Sema::CheckCompareOperands(). For example, they both need to operate on the unqualified pointee...
llvm-svn: 46522
2008-01-29 18:58:14 +00:00
Steve Naroff
f06b5ba047
Fix bz1950. ASTContext::functionTypesAreCompatible() needs to operate on the unqualified parameter types (per C99 6.7.5.3p15).
...
llvm-svn: 46472
2008-01-29 00:15:50 +00:00
Chris Lattner
fd65291aa3
Fix ASTContext::typesAreCompatible when analyzing a function type with
...
proto and function type without proto. It would never call
'functionTypesAreCompatible' because they have different type classes.
llvm-svn: 45952
2008-01-14 05:45:46 +00:00
Chris Lattner
4f20351142
When promoting array to pointer for argument, don't lose type qualifiers.
...
llvm-svn: 45510
2008-01-02 22:50:48 +00:00