| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
| |
when checking for integer signed/unsigned-ness. PR8694,
// rdar://8707031
llvm-svn: 120345
|
|
|
|
|
|
|
| |
tweak the documentation for deprecation-with-message. Provide __has_feature
tests for both. rdar://problem/8605692
llvm-svn: 118435
|
|
|
|
| |
llvm-svn: 114318
|
|
|
|
| |
llvm-svn: 114316
|
|
|
|
|
|
|
|
|
|
|
| |
for incomplete enum types. An incomplete enum can't really be treated as
an "integral or enumeration" type, and the incorrect treatment leads to
bad behavior for many callers.
This makes isIntegralOrEnumerationType equivalent to isIntegerType; I think
we should globally replace the latter with the former; thoughts?
llvm-svn: 111512
|
|
|
|
| |
llvm-svn: 105013
|
|
|
|
|
|
| |
(radar 8040068).
llvm-svn: 105011
|
|
|
|
|
|
|
| |
type..." with "initializing <type> with an expression of type...",
which reads better. Thanks to John for the improved wording.
llvm-svn: 100873
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
destination type for initialization, assignment, parameter-passing,
etc. The main issue fixed here is that we used rather confusing
wording for diagnostics such as
t.c:2:9: warning: initializing 'char const [2]' discards qualifiers,
expected 'char *' [-pedantic]
char *name = __func__;
^ ~~~~~~~~
We're not initializing a 'char const [2]', we're initializing a 'char
*' with an expression of type 'char const [2]'. Similar problems
existed for other diagnostics in this area, so I've normalized them all
with more precise descriptive text to say what we're
initializing/converting/assigning/etc. from and to. The warning for
the code above is now:
t.c:2:9: warning: initializing 'char *' from an expression of type
'char const [2]' discards qualifiers [-pedantic]
char *name = __func__;
^ ~~~~~~~~
Fixes <rdar://problem/7447179>.
llvm-svn: 100832
|
|
|
|
|
|
|
| |
sure that we get the "too large" vs. "too small" part of the
diagnostic correct.
llvm-svn: 96524
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- In C++, prior to the closing '}', set the type of enumerators
based on the type of their initializer. Don't perform unary
conversions on the enumerator values.
- In C++, handle overflow when an enumerator has no initializer and
its value cannot be represented in the type of the previous
enumerator.
- In C, handle overflow more gracefully, by complaining and then
falling back to the C++ rules.
- In C, if the enumerator value is representable in an int, convert the
expression to the type 'int'.
Fixes PR5854 and PR4515.
llvm-svn: 95031
|
|
|
|
| |
llvm-svn: 93362
|
|
|
|
|
|
|
|
|
| |
- 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
|
|
|
|
| |
llvm-svn: 77780
|
|
|
|
|
|
| |
Tests and drivers updated, still need to shuffle dirs.
llvm-svn: 67602
|
|
|
|
|
|
|
|
|
| |
translation unit.
Thread the various declarations of variables via
VarDecl::getPreviousDeclaration.
llvm-svn: 66601
|
|
|
|
|
|
|
|
|
|
|
| |
definitions. We were rejecting tentative definitions of incomplete
(which is bad), and now we don't.
This fix is partial because we don't do the end-of-translation-unit
initialization for tentative definitions that don't ever have any
initializers specified.
llvm-svn: 66584
|
|
|
|
|
|
| |
C and C++. Fixes PR3688.
llvm-svn: 66282
|
|
|
|
|
|
|
|
|
|
| |
new DiagnoseIncompleteType. It provides additional information about
struct/class/union/enum types when possible, either by pointing to the
forward declaration of that type or by pointing to the definition (if
we're in the process of defining that type).
Fixes <rdar://problem/6500531>.
llvm-svn: 62521
|
|
|
|
|
|
| |
rdar://problem/6503878
llvm-svn: 62397
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
even when we are still defining the TagDecl. This is required so that
qualified name lookup of a class name within its definition works (see
the new bits in test/SemaCXX/qualified-id-lookup.cpp).
As part of this, move the nested redefinition checking code into
ActOnTag. This gives us diagnostics earlier (when we try to perform
the nested redefinition, rather than when we try to complete the 2nd
definition) and removes some code duplication.
llvm-svn: 62386
|
|
|
|
|
|
|
|
|
|
| |
together in the same way that we link RecordDecl/CXXRecordDecl nodes.
Unify ActOnTag and ActOnTagStruct.
Fixes PR clang/2753.
llvm-svn: 61034
|
|
|
|
|
|
|
|
|
| |
code were working correctly, it would be a no-op, but it's not really a
proper fix. That said, I don't really want to touch the enum code at
the moment because I don't understand it very well, and this seems to
be a relatively visible regression.
llvm-svn: 60680
|
|
|
|
|
|
| |
"previously defined here" diagnostics all notes.
llvm-svn: 59920
|
|
|
|
|
|
| |
- <rdar://problem/6093889>
llvm-svn: 54470
|
|
|
|
| |
llvm-svn: 54096
|
|
|
|
| |
llvm-svn: 54079
|
|
|
|
| |
llvm-svn: 54074
|
|
|
|
|
|
| |
by filling in the body of a union with enum constants.
llvm-svn: 53069
|
|
|
|
|
|
| |
tentative definitions with incomplete types. Touch up all test cases that are effected.
llvm-svn: 46152
|
|
|
|
|
|
| |
Bug submitted by Eli.
llvm-svn: 46102
|
|
|
|
|
|
|
| |
rename -parse-ast-dump to -ast-dump
remove -parse-ast, which is redundant with -fsyntax-only
llvm-svn: 42852
|
|
|
|
|
|
|
|
|
|
|
|
| |
using "-parse-ast -verify".
Updated all test cases (using a sed script) that invoked -parse-ast-check to
now use -parse-ast -verify.
Fixed a bug where using "-verify" instead of "-parse-ast-check" would not
correctly create the DiagClient needed to accumulate diagnostics.
llvm-svn: 42365
|
|
TODO: update the types of the constants and the enum.
llvm-svn: 41532
|