]> granicus.if.org Git - clang/log
clang
12 years agoWhen determining the availability of an enum constant, also consider
Douglas Gregor [Sat, 17 Mar 2012 06:39:06 +0000 (06:39 +0000)]
When determining the availability of an enum constant, also consider
the availability of the enumeration type itself. Fixes
<rdar://problem/10996386>.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152977 91177308-0d34-0410-b5e6-96231b3b80d8

12 years ago[analyzer] Don't claim an object was returned with +1 retain count before counting...
Jordy Rose [Sat, 17 Mar 2012 05:49:15 +0000 (05:49 +0000)]
[analyzer] Don't claim an object was returned with +1 retain count before counting autoreleases. Fixes PR10376.

(Also, 80-column violations.)

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152976 91177308-0d34-0410-b5e6-96231b3b80d8

12 years ago[analyzer] Add test case from PR10794 for using 'new' with Obj-C objects.
Jordy Rose [Sat, 17 Mar 2012 03:53:59 +0000 (03:53 +0000)]
[analyzer] Add test case from PR10794 for using 'new' with Obj-C objects.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152975 91177308-0d34-0410-b5e6-96231b3b80d8

12 years ago[analyzer] This test is breaking windows bots, make it darwin-specific.
Anna Zaks [Sat, 17 Mar 2012 01:53:32 +0000 (01:53 +0000)]
[analyzer] This test is breaking windows bots, make it darwin-specific.

(The plist output does not match the one we expect, specifically we do
not detect that the interesting symbol is returned by a call.)

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152969 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoFix crash on invalid code. I've tried to produce a reduced test case, but when I...
Ted Kremenek [Sat, 17 Mar 2012 00:53:39 +0000 (00:53 +0000)]
Fix crash on invalid code.  I've tried to produce a reduced test case, but when I do the specific crash is hidden.  Fixes <rdar://problem/11063594>.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152968 91177308-0d34-0410-b5e6-96231b3b80d8

12 years ago[analyzer] Shorten the stack hint diagnostic.
Anna Zaks [Fri, 16 Mar 2012 23:44:28 +0000 (23:44 +0000)]
[analyzer] Shorten the stack hint diagnostic.

Do not display the standard "Returning from 'foo'", when a stack hint is
available.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152964 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoMake the storing variable's name generic.
Bill Wendling [Fri, 16 Mar 2012 23:37:23 +0000 (23:37 +0000)]
Make the storing variable's name generic.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152963 91177308-0d34-0410-b5e6-96231b3b80d8

12 years ago[analyzer] Create symbol-aware stack hints (building upon r152837).
Anna Zaks [Fri, 16 Mar 2012 23:24:20 +0000 (23:24 +0000)]
[analyzer] Create symbol-aware stack hints (building upon r152837).

The symbol-aware stack hint combines the checker-provided message
with the information about how the symbol was passed to the callee: as
a parameter or a return value.

For malloc, the generated messages look like this :
"Returning from 'foo'; released memory via 1st parameter"
"Returning from 'foo'; allocated memory via 1st parameter"
"Returning from 'foo'; allocated memory returned"
"Returning from 'foo'; reallocation of 1st parameter failed"

(We are yet to handle cases when the symbol is a field in a struct or
an array element.)

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152962 91177308-0d34-0410-b5e6-96231b3b80d8

12 years ago[analyzer] +Comments
Anna Zaks [Fri, 16 Mar 2012 23:24:16 +0000 (23:24 +0000)]
[analyzer] +Comments

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152961 91177308-0d34-0410-b5e6-96231b3b80d8

12 years ago[analyzer] Add a statistic for the number of times we reach the max
Anna Zaks [Fri, 16 Mar 2012 23:24:13 +0000 (23:24 +0000)]
[analyzer] Add a statistic for the number of times we reach the max
number of steps in the work list.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152960 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoEscape % in diagnostic message when compiling LLVM IR.
Benjamin Kramer [Fri, 16 Mar 2012 22:31:42 +0000 (22:31 +0000)]
Escape % in diagnostic message when compiling LLVM IR.

% is a common character in IR so we'd crash on almost any malformed IR. The
diagnostic formatter expects a formatting directive when it sees an unescaped %.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152956 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agosink variable into assert
Matt Beaumont-Gay [Fri, 16 Mar 2012 22:20:39 +0000 (22:20 +0000)]
sink variable into assert

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152955 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoWhen "low alignment" is specified, then set the alignment of the aggregate's
Bill Wendling [Fri, 16 Mar 2012 21:45:12 +0000 (21:45 +0000)]
When "low alignment" is specified, then set the alignment of the aggregate's
store to 1. This allows code-gen to select a more appropriate alignment. If left
to zero, an alignment greater than the alignment of the pointer may be selected,
causing code-gen to use instructions which require an alignment greater than the
pointer guarantees.
<rdar://problem/11043589>

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152951 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoMinor clean up of my last patch.
Fariborz Jahanian [Fri, 16 Mar 2012 21:43:45 +0000 (21:43 +0000)]
Minor clean up of my last patch.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152950 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agomodern objective-c translator: write @synchronized.
Fariborz Jahanian [Fri, 16 Mar 2012 21:33:16 +0000 (21:33 +0000)]
modern objective-c translator: write @synchronized.
// rdar://11063663

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152949 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoSuppress macro expansion of NULL in NULL warnings.
David Blaikie [Fri, 16 Mar 2012 20:30:12 +0000 (20:30 +0000)]
Suppress macro expansion of NULL in NULL warnings.

For "int i = NULL;" we would produce:

null.cpp:5:11: warning: implicit conversion of NULL constant to integer [-Wconversion]
  int i = NULL;
      ~   ^~~~
null.cpp:1:14: note: expanded from macro 'NULL'
\#define NULL __null
              ^~~~~~

But we really shouldn't trace that macro expansion back into the header, yet we
still want macro back traces for code like this:

\#define FOO NULL
int i = FOO;

or

\#define FOO int i = NULL;
FOO

While providing appropriate tagging at different levels of the expansion, etc.

The included test case exercises these cases & does some basic validation (to
ensure we don't have macro expansion notes where we shouldn't, and do where we
should) - but doesn't go as far as to validate the source location/ranges
used in those notes and warnings.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152940 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoSkip through transparent contexts when deciding where to add a friend function.
Nick Lewycky [Fri, 16 Mar 2012 19:51:19 +0000 (19:51 +0000)]
Skip through transparent contexts when deciding where to add a friend function.
This fixes g++.dg/parse/friend5.C.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152938 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoAfter r150615, which tablegens the group of a diagnostic as an index into the *.inc...
Argyrios Kyrtzidis [Fri, 16 Mar 2012 19:31:34 +0000 (19:31 +0000)]
After r150615, which tablegens the group of a diagnostic as an index into the *.inc file, all diagnostic *.inc
files depend on all other diagnostic *.td files, because a diagnostic group can be introduced at any of the diagnostic
*.td files.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152937 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agomodern objective-c translator: writing @throw statement.
Fariborz Jahanian [Fri, 16 Mar 2012 16:52:06 +0000 (16:52 +0000)]
modern objective-c translator: writing @throw statement.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152931 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoWarn on flexible array members when in C89 mode, with -pedantic.
David Chisnall [Fri, 16 Mar 2012 12:15:37 +0000 (12:15 +0000)]
Warn on flexible array members when in C89 mode, with -pedantic.
This fixes PR 4307.

Patch by Eitan Adler!

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152918 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoFrom Vassil Vassilev:
Axel Naumann [Fri, 16 Mar 2012 10:40:17 +0000 (10:40 +0000)]
From Vassil Vassilev:
Enable incremental parsing by the Preprocessor,
where more code can be provided after an EOF.
It mainly prevents the tearing down of the topmost lexer.
To be used like this:
PP.enableIncrementalProcessing();
while (getMoreSource()) {
  while (Parser.ParseTopLevelDecl(ADecl)) {...}
}
PP.enableIncrementalProcessing(false);

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152914 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoFix Objective-C compilation-time performance regression introduced in r152608.
Richard Smith [Fri, 16 Mar 2012 06:12:59 +0000 (06:12 +0000)]
Fix Objective-C compilation-time performance regression introduced in r152608.

Reintroduce lazy name lookup table building, ensuring that the lazy building step
produces the same lookup table that would be built by the eager step.

Avoid building a lookup table for the translation unit outside C++, even in cases
where we can't recover the contents of the table from the declaration chain on
the translation unit, since we're not going to perform qualified lookup into it
anyway. Continue to support lazily building such lookup tables for now, though,
since ASTMerge uses them.

In my tests, this performs very similarly to ToT with r152608 backed out, for C,
Obj-C and C++, and does not suffer from PR10447.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152905 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoFix analyzer crash on analyzing 'catch' with no condition variable.
Ted Kremenek [Fri, 16 Mar 2012 05:58:15 +0000 (05:58 +0000)]
Fix analyzer crash on analyzing 'catch' with no condition variable.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152900 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agotest/Driver/linker-opts.c: Mark as XFAIL:cygming, using gcc linker driver. It should...
NAKAMURA Takumi [Fri, 16 Mar 2012 05:31:24 +0000 (05:31 +0000)]
test/Driver/linker-opts.c: Mark as XFAIL:cygming, using gcc linker driver. It should be aware of LIBRARY_PATH.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152896 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoAdd test case for <rdar://problem/8808566>, which is now fixed by inlining support.
Ted Kremenek [Fri, 16 Mar 2012 04:59:57 +0000 (04:59 +0000)]
Add test case for <rdar://problem/8808566>, which is now fixed by inlining support.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152894 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoBased on sage feedback, chang -W#import-pedantic to -Wimport-preprocessor-directive...
Ted Kremenek [Fri, 16 Mar 2012 04:07:45 +0000 (04:07 +0000)]
Based on sage feedback, chang -W#import-pedantic to -Wimport-preprocessor-directive-pedantic.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152893 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoDon't try to create "store atomic" instructions of non-integer types; they aren't...
Eli Friedman [Fri, 16 Mar 2012 01:48:04 +0000 (01:48 +0000)]
Don't try to create "store atomic" instructions of non-integer types; they aren't supported at the moment.  PR12040.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152891 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoAdd warning flag for '#import is a language extension', -W#import-pedantic.
Ted Kremenek [Fri, 16 Mar 2012 01:03:40 +0000 (01:03 +0000)]
Add warning flag for '#import is a language extension', -W#import-pedantic.

Don't know if it is an anathema to include '#' in the warning name.  I'm fine
with changing it, but this was the most obvious name.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152886 91177308-0d34-0410-b5e6-96231b3b80d8

12 years ago[arcmt] The hard-coded list of weak-incompatible classes is no longer necessary.
Argyrios Kyrtzidis [Fri, 16 Mar 2012 00:21:22 +0000 (00:21 +0000)]
[arcmt] The hard-coded list of weak-incompatible classes is no longer necessary.
rdar://10673816

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152879 91177308-0d34-0410-b5e6-96231b3b80d8

12 years ago[arcmt] iOS is always safe to use 'weak'. rdar://10950825
Argyrios Kyrtzidis [Fri, 16 Mar 2012 00:10:35 +0000 (00:10 +0000)]
[arcmt] iOS is always safe to use 'weak'. rdar://10950825

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152878 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agomodern objective-c translation: writing @try/@catch/@finally
Fariborz Jahanian [Thu, 15 Mar 2012 23:50:33 +0000 (23:50 +0000)]
modern objective-c translation: writing @try/@catch/@finally
statements.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152875 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoWhen a variable has a specified asm name, but isn't using the register storage class...
Eli Friedman [Thu, 15 Mar 2012 23:12:51 +0000 (23:12 +0000)]
When a variable has a specified asm name, but isn't using the register storage class, the asm name doesn't specify a register. PR12244.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152873 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoFix help text.
Chad Rosier [Thu, 15 Mar 2012 23:08:22 +0000 (23:08 +0000)]
Fix help text.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152872 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoUpdate checker build.
Ted Kremenek [Thu, 15 Mar 2012 23:02:21 +0000 (23:02 +0000)]
Update checker build.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152871 91177308-0d34-0410-b5e6-96231b3b80d8

12 years ago[analyzer] If a metadata symbol is interesting, its region is interesting as well.
Jordy Rose [Thu, 15 Mar 2012 22:45:29 +0000 (22:45 +0000)]
[analyzer] If a metadata symbol is interesting, its region is interesting as well.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152868 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agomodern objective-c translator: writing @try/@finally statement.
Fariborz Jahanian [Thu, 15 Mar 2012 22:42:15 +0000 (22:42 +0000)]
modern objective-c translator: writing @try/@finally statement.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152867 91177308-0d34-0410-b5e6-96231b3b80d8

12 years ago[frontend] Fix how the frontend handles -fno-inline. AFAIK clang now matches
Chad Rosier [Thu, 15 Mar 2012 22:31:42 +0000 (22:31 +0000)]
[frontend] Fix how the frontend handles -fno-inline.  AFAIK clang now matches
the behavior of gcc with respect to the -fno-inline and -fno-inline-functions
flags.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152861 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoInclude full plist output in FileCheck test.
Ted Kremenek [Thu, 15 Mar 2012 22:14:09 +0000 (22:14 +0000)]
Include full plist output in FileCheck test.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152859 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoInclude full plist output in FileCheck test.
Ted Kremenek [Thu, 15 Mar 2012 22:00:28 +0000 (22:00 +0000)]
Include full plist output in FileCheck test.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152858 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoDo not truncate expected plist output in FileCheck test.
Ted Kremenek [Thu, 15 Mar 2012 21:55:38 +0000 (21:55 +0000)]
Do not truncate expected plist output in FileCheck test.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152857 91177308-0d34-0410-b5e6-96231b3b80d8

12 years ago[analyzer] Remove AggExprVisitor, a dead class that assisted in visiting C++ expressi...
Jordy Rose [Thu, 15 Mar 2012 21:46:47 +0000 (21:46 +0000)]
[analyzer] Remove AggExprVisitor, a dead class that assisted in visiting C++ expressions with a "base object", because the CFG is now linearized.

The only use of AggExprVisitor was in #if 0 code (the analyzer's incomplete C++ support), so there is no actual behavioral change anyway.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152856 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoSupport deducing template arguments from nested initializer lists. PR12119.
Sebastian Redl [Thu, 15 Mar 2012 21:40:51 +0000 (21:40 +0000)]
Support deducing template arguments from nested initializer lists. PR12119.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152848 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoSupport '%p' format specifier with block pointers.
Ted Kremenek [Thu, 15 Mar 2012 21:22:27 +0000 (21:22 +0000)]
Support '%p' format specifier with block pointers.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152839 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoIt was pointed out that a checking version of strdup isn't needed. So much for late...
Bill Wendling [Thu, 15 Mar 2012 21:18:47 +0000 (21:18 +0000)]
It was pointed out that a checking version of strdup isn't needed. So much for late-night hacking. :)

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152838 91177308-0d34-0410-b5e6-96231b3b80d8

12 years ago[analyzer] Allow checkers to supply call stack diagnostic hints for the
Anna Zaks [Thu, 15 Mar 2012 21:13:02 +0000 (21:13 +0000)]
[analyzer] Allow checkers to supply call stack diagnostic hints for the
BugVisitor DiagnosticPieces.

When checkers create a DiagnosticPieceEvent, they can supply an extra
string, which will be concatenated with the call exit message for every
call on the stack between the diagnostic event and the final bug report.
(This is a simple version, which could be/will be further enhanced.)

For example, this is used in Malloc checker to produce the ",
which allocated memory" in the following example:

static char *malloc_wrapper() { // 2. Entered call from 'use'
    return malloc(12);    // 3. Memory is allocated
}

void use() {
    char *v;
    v = malloc_wrapper(); // 1. Calling 'malloc_wrappers'
        // 4. Returning from 'malloc_wrapper', which allocated memory
}                         // 5. Memory is never released; potential
memory leak

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152837 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoProvide the specific target type in the -Wnull-conversion warning.
David Blaikie [Thu, 15 Mar 2012 20:48:26 +0000 (20:48 +0000)]
Provide the specific target type in the -Wnull-conversion warning.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152835 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agomodern objective-c translator: rewriting of @catch-stmt.
Fariborz Jahanian [Thu, 15 Mar 2012 20:11:10 +0000 (20:11 +0000)]
modern objective-c translator: rewriting of @catch-stmt.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152830 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoDocument RedeclarableTemplateDecl::getInstantiatedFromMemberTemplate().
Douglas Gregor [Thu, 15 Mar 2012 19:32:20 +0000 (19:32 +0000)]
Document RedeclarableTemplateDecl::getInstantiatedFromMemberTemplate().

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152826 91177308-0d34-0410-b5e6-96231b3b80d8

12 years ago[c-index-test] Make it C90 compliant.
Argyrios Kyrtzidis [Thu, 15 Mar 2012 18:48:52 +0000 (18:48 +0000)]
[c-index-test] Make it C90 compliant.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152823 91177308-0d34-0410-b5e6-96231b3b80d8

12 years ago[libclang] A couple of enhancements to c-index-test.
Argyrios Kyrtzidis [Thu, 15 Mar 2012 18:07:22 +0000 (18:07 +0000)]
[libclang] A couple of enhancements to c-index-test.

-When printing location avoid printing the filename if it is
same as the main file, not just if it has '.h' extension.
-Make sure we allocate enough bytes for storing as string a
huge line number.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152821 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoMake RecursiveASTVisitor to traverse certain statements using data recursion
Argyrios Kyrtzidis [Thu, 15 Mar 2012 18:07:19 +0000 (18:07 +0000)]
Make RecursiveASTVisitor to traverse certain statements using data recursion
to avoid a stack overflow with extreme cases.

Part of rdar://10941790.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152820 91177308-0d34-0410-b5e6-96231b3b80d8

12 years ago[Sema] Introduce a data recursive evaluator specific to binary operators.
Argyrios Kyrtzidis [Thu, 15 Mar 2012 18:07:16 +0000 (18:07 +0000)]
[Sema] Introduce a data recursive evaluator specific to binary operators.

This allows us to handle extreme cases of chained binary operators without causing stack
overflow.
The binary operators that are handled with the data recursive evaluator are
comma, logical, or operators that have operands with integral or enumeration type.

Part of rdar://10941790.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152819 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoRemove hacky temporary fix of r151585.
Argyrios Kyrtzidis [Thu, 15 Mar 2012 18:07:13 +0000 (18:07 +0000)]
Remove hacky temporary fix of r151585.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152818 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agomodern objective-c translator: please symbols generated
Fariborz Jahanian [Thu, 15 Mar 2012 17:05:33 +0000 (17:05 +0000)]
modern objective-c translator: please symbols generated
for @protocol expression into their own section.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152808 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoWhen laying out an Objective-C object, consult
Sean Callanan [Thu, 15 Mar 2012 16:33:08 +0000 (16:33 +0000)]
When laying out an Objective-C object, consult
the external source to complete the Decl if it
hasn't been completed already.

This fixes a crash in LLDB.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152807 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agofix link
Kostya Serebryany [Thu, 15 Mar 2012 16:22:06 +0000 (16:22 +0000)]
fix link

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152806 91177308-0d34-0410-b5e6-96231b3b80d8

12 years ago[asan] update asan docs: mention CMake problem and to explain the status of MacOS...
Kostya Serebryany [Thu, 15 Mar 2012 16:20:29 +0000 (16:20 +0000)]
[asan] update asan docs: mention CMake problem and to explain the status of MacOS 10.7 and 32-bit Linux

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152805 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoAdding in newer MinGW header paths.
Aaron Ballman [Thu, 15 Mar 2012 14:31:30 +0000 (14:31 +0000)]
Adding in newer MinGW header paths.

Patch thanks to Nikola Smiljanic

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152801 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoAdd the object size checking support for a few other builtins.
Bill Wendling [Thu, 15 Mar 2012 09:27:30 +0000 (09:27 +0000)]
Add the object size checking support for a few other builtins.

The functions memccpy, strdup, strndup, strlcat, and strlcpy should also have
object size checking support. Of course, this is only good if the C library also
supports these functions.
<rdar://problem/10528974>

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152789 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoFix codegen for vld{3,4}_dup intrinsics.
James Molloy [Thu, 15 Mar 2012 09:12:01 +0000 (09:12 +0000)]
Fix codegen for vld{3,4}_dup intrinsics.

Patch by Silviu Baranga!

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152788 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoUnpluralize -Wfoo-conversions warnings for consistency.
David Blaikie [Thu, 15 Mar 2012 05:09:31 +0000 (05:09 +0000)]
Unpluralize -Wfoo-conversions warnings for consistency.

Err on the side of brevity and rename (while providing aliases for the original
name) -Wbool-conversions, -Wint-conversions, and -Wvector-conversions for
consistency with constant, literal, string, and sign conversion warnings. And
name the diagnostic groups explicitly while I'm here rather than rewriting the
string in the groups and sema td files.

Curiously, vector-conversion is not under -Wconversion. Perhaps it should be.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152776 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoUnrevert r152761 (reverted in r152772) with a fix for the issue which was
Richard Smith [Thu, 15 Mar 2012 04:53:45 +0000 (04:53 +0000)]
Unrevert r152761 (reverted in r152772) with a fix for the issue which was
breaking bootstrap. No test yet: it's quite hard to tickle the failure case.
The specific testcase for this wouldn't be useful for testing anything more
general than a reintroduction of this precise bug in any case.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152775 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoReapply r152745 (reverted in 152765) now that compiler-rt is fixed.
David Blaikie [Thu, 15 Mar 2012 04:50:32 +0000 (04:50 +0000)]
Reapply r152745 (reverted in 152765) now that compiler-rt is fixed.

Original commit message:

Provide -Wnull-conversion separately from -Wconversion.

Like GCC, provide a NULL conversion to non-pointer conversion as a separate
flag, on by default. GCC's flag is "conversion-null" which we provide for
cross compatibility, but in the interests of consistency (with
-Wint-conversion, -Wbool-conversion, etc) the canonical Clang flag is called
-Wnull-conversion.

Patch by Lubos Lunak.
Review feedback by myself, Chandler Carruth, and Chad Rosier.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152774 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoRevert r152761 "Minor optimization to constant evaluation: don't bother
Daniel Dunbar [Thu, 15 Mar 2012 03:04:21 +0000 (03:04 +0000)]
Revert r152761 "Minor optimization to constant evaluation: don't bother
computing expr source...", it breaks bootstrap.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152772 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoSmall cleanup: move trailing-return-type special-casing into
Richard Smith [Thu, 15 Mar 2012 01:02:11 +0000 (01:02 +0000)]
Small cleanup: move trailing-return-type special-casing into
getDeclSpecContextFromDeclaratorContext.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152766 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoRevert r152745 as it's breaking the internal buildbots.
Chad Rosier [Thu, 15 Mar 2012 01:00:38 +0000 (01:00 +0000)]
Revert r152745 as it's breaking the internal buildbots.

Abbreviated commit message:
Provide -Wnull-conversion separately from -Wconversion.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152765 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoMinor optimization to constant evaluation: don't bother computing expr source
Richard Smith [Thu, 15 Mar 2012 00:41:48 +0000 (00:41 +0000)]
Minor optimization to constant evaluation: don't bother computing expr source
locations for diagnostics we're not going to emit, and don't track the subobject
designator outside C++11 (since we're not going to use it anyway).

This seems to give about a 0.5% speedup on 403.gcc/combine.c, but the results
were sufficiently noisy that I can't reject the null hypothesis.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152761 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoRemove a variable rendered unused by r152750.
Richard Smith [Thu, 15 Mar 2012 00:22:18 +0000 (00:22 +0000)]
Remove a variable rendered unused by r152750.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152758 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoAdding some more specific tests for enum declspec parsing, to prove that it really...
Aaron Ballman [Thu, 15 Mar 2012 00:20:05 +0000 (00:20 +0000)]
Adding some more specific tests for enum declspec parsing, to prove that it really works.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152757 91177308-0d34-0410-b5e6-96231b3b80d8

12 years ago[frontend] Add support for disabling the "inline" keyword using
Chad Rosier [Wed, 14 Mar 2012 23:32:11 +0000 (23:32 +0000)]
[frontend] Add support for disabling the "inline" keyword using
-fno-inline-functions.

This behaves much like -fno-inline in gcc, but based on a discussion with
Daniel it was decided that -fno-inline-functions should subsume -fno-inline.
Please speak up if you object.  The -fno-inline flag remains ignored.
Final part of rdar://10972766

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152754 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agomodern objective-c translator: section info.
Fariborz Jahanian [Wed, 14 Mar 2012 23:18:19 +0000 (23:18 +0000)]
modern objective-c translator: section info.
and metadata for "non-lazy" class and categories.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152751 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoInstantiating a class template should not instantiate the definition of any
Richard Smith [Wed, 14 Mar 2012 23:13:10 +0000 (23:13 +0000)]
Instantiating a class template should not instantiate the definition of any
scoped enumeration members. Later uses of an enumeration temploid as a nested
name specifier should cause its instantiation. Plus some groundwork for
explicit specialization of member enumerations of class templates.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152750 91177308-0d34-0410-b5e6-96231b3b80d8

12 years ago'#if 0' out a variable that's only used in other preprocessor-disabled code.
Matt Beaumont-Gay [Wed, 14 Mar 2012 23:12:42 +0000 (23:12 +0000)]
'#if 0' out a variable that's only used in other preprocessor-disabled code.

(Why are we keeping all of this code around anyway? Say the word and I'll
start swinging the delete hammer.)

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152749 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoProvide -Wnull-conversion separately from -Wconversion.
David Blaikie [Wed, 14 Mar 2012 22:28:22 +0000 (22:28 +0000)]
Provide -Wnull-conversion separately from -Wconversion.

Like GCC, provide a NULL conversion to non-pointer conversion as a separate
flag, on by default. GCC's flag is "conversion-null" which we provide for
cross compatibility, but in the interests of consistency (with
-Wint-conversion, -Wbool-conversion, etc) the canonical Clang flag is called
-Wnull-conversion.

Patch by Lubos Lunak.
Review feedback by myself, Chandler Carruth, and Chad Rosier.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152745 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoobjective-c modern tranaltor. More section info.
Fariborz Jahanian [Wed, 14 Mar 2012 21:44:09 +0000 (21:44 +0000)]
objective-c modern tranaltor. More section info.
for misc. objc meta-data.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152743 91177308-0d34-0410-b5e6-96231b3b80d8

12 years ago[analyzer] A fixup to r152734. Always initialize the flag.
Anna Zaks [Wed, 14 Mar 2012 21:24:14 +0000 (21:24 +0000)]
[analyzer] A fixup to r152734. Always initialize the flag.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152742 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoNo longer defining LP64 in 64-bit builds on platforms which are not LP64.
Aaron Ballman [Wed, 14 Mar 2012 20:50:57 +0000 (20:50 +0000)]
No longer defining LP64 in 64-bit builds on platforms which are not LP64.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152740 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoWhen emitting a diagnostic about two-phase name lookup, don't do useless
Nick Lewycky [Wed, 14 Mar 2012 20:41:00 +0000 (20:41 +0000)]
When emitting a diagnostic about two-phase name lookup, don't do useless
qualified name lookups into transparent contexts.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152739 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoFix dereference of end iterator. Spotted by ASan.
Matt Beaumont-Gay [Wed, 14 Mar 2012 20:21:25 +0000 (20:21 +0000)]
Fix dereference of end iterator. Spotted by ASan.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152738 91177308-0d34-0410-b5e6-96231b3b80d8

12 years ago[analyzer] Diagnostics: Supply Caller information even if the bug occurs
Anna Zaks [Wed, 14 Mar 2012 18:58:28 +0000 (18:58 +0000)]
[analyzer] Diagnostics: Supply Caller information even if the bug occurs
in the callee.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152734 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoobjective-c modern translator.
Fariborz Jahanian [Wed, 14 Mar 2012 18:09:23 +0000 (18:09 +0000)]
objective-c modern translator.
Add the _class_ro_t.reserved field for 64bit targets.
// rdar://11040024

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152731 91177308-0d34-0410-b5e6-96231b3b80d8

12 years ago[Analyser] Remove unnecessary recursive visits for ExprWithCleanups and
Erik Verbruggen [Wed, 14 Mar 2012 18:01:43 +0000 (18:01 +0000)]
[Analyser] Remove unnecessary recursive visits for ExprWithCleanups and
MaterializeTemporaryExpr.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152730 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoRemove clang-wpa example, which has been unmaintained for quite a while.
Douglas Gregor [Wed, 14 Mar 2012 17:29:44 +0000 (17:29 +0000)]
Remove clang-wpa example, which has been unmaintained for quite a while.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152729 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoMinor cleanup in attribute-related diagnostics, from Alexander Kornienko!
Douglas Gregor [Wed, 14 Mar 2012 16:55:17 +0000 (16:55 +0000)]
Minor cleanup in attribute-related diagnostics, from Alexander Kornienko!

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152725 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoParse brace initializers as default arguments. PR12236.
Sebastian Redl [Wed, 14 Mar 2012 15:54:00 +0000 (15:54 +0000)]
Parse brace initializers as default arguments. PR12236.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152721 91177308-0d34-0410-b5e6-96231b3b80d8

12 years ago[Analyser] Removes more recursive visitations in ExprEngine that are no
Erik Verbruggen [Wed, 14 Mar 2012 15:38:55 +0000 (15:38 +0000)]
[Analyser] Removes more recursive visitations in ExprEngine that are no
longer needed as the CFG is fully linearized.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152720 91177308-0d34-0410-b5e6-96231b3b80d8

12 years ago[Basic] Change DiagnosticBuilder to use a separate status variable to track whether...
Daniel Dunbar [Wed, 14 Mar 2012 09:49:36 +0000 (09:49 +0000)]
[Basic] Change DiagnosticBuilder to use a separate status variable to track whether the builder is active.
 - This may seem superflous, but actually this allows the optimizer to more
   easily eliminate the isActive() checks needed by the SemaDiagnosticBuilder
   and DiagnosticBuilder dtors. And by more easily, I mean the current LLVM is
   actually able to do one and not the other. :)

This is good for another 20k code size reduction.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152709 91177308-0d34-0410-b5e6-96231b3b80d8

12 years ago[Sema] Fix SemaDiagnosticBuilder to be inline.
Daniel Dunbar [Wed, 14 Mar 2012 09:49:32 +0000 (09:49 +0000)]
[Sema] Fix SemaDiagnosticBuilder to be inline.
 - As with DiagnosticBuilder, it is very important that SemaDiagnosticBuilder be
   completely inline to ensure that the compiler can rip it apart and sink it to
   registers.

This is good for another 30k reduction in code size.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152708 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoRemove trailing whitespace (especially after a \ which should be trailing)
Matt Beaumont-Gay [Wed, 14 Mar 2012 01:23:41 +0000 (01:23 +0000)]
Remove trailing whitespace (especially after a \ which should be trailing)

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152695 91177308-0d34-0410-b5e6-96231b3b80d8

12 years ago-arch is a darwin-only feature, use -target instead to make the linux buildbots happy...
Benjamin Kramer [Wed, 14 Mar 2012 01:17:52 +0000 (01:17 +0000)]
-arch is a darwin-only feature, use -target instead to make the linux buildbots happy again.

Also check the error message.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152694 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoAdd support to mangle templated member function names with template
Eric Christopher [Wed, 14 Mar 2012 00:25:46 +0000 (00:25 +0000)]
Add support to mangle templated member function names with template
args.

Fixes rdar://11042577

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152691 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoTypo.
Chad Rosier [Tue, 13 Mar 2012 23:48:50 +0000 (23:48 +0000)]
Typo.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152686 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoobjective-c modern rewriter. Do not add _class_ro_t.reserved
Fariborz Jahanian [Tue, 13 Mar 2012 23:48:09 +0000 (23:48 +0000)]
objective-c modern rewriter. Do not add _class_ro_t.reserved
field. // rdar://11040024

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152685 91177308-0d34-0410-b5e6-96231b3b80d8

12 years ago[driver] Clang should report an error for -faltivec on non-ppc.
Chad Rosier [Tue, 13 Mar 2012 23:45:51 +0000 (23:45 +0000)]
[driver] Clang should report an error for -faltivec on non-ppc.
rdar://10963572

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152684 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoWhen adding member functions to a class add any specializations of
Eric Christopher [Tue, 13 Mar 2012 23:40:48 +0000 (23:40 +0000)]
When adding member functions to a class add any specializations of
function templates as well.

A future commit will mangle the added name with the template args
like classes are mangled.

Fixes rdar://10986010

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152683 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoAdd a test case for PR8385.
David Blaikie [Tue, 13 Mar 2012 23:33:06 +0000 (23:33 +0000)]
Add a test case for PR8385.

"struct{template struct{" would fail an assertion.

This assertion failure seems to have gone away somewhere along the line so
here's a test to make sure we don't regress. We still accept some very weird
explicit template 'instantiations' ("template int;", anyone) but at least we're
not asserting/crashing here.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152681 91177308-0d34-0410-b5e6-96231b3b80d8

12 years ago[analyser] Refactor shouldInline logic into a helper.
Anna Zaks [Tue, 13 Mar 2012 22:15:58 +0000 (22:15 +0000)]
[analyser] Refactor shouldInline logic into a helper.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152677 91177308-0d34-0410-b5e6-96231b3b80d8

12 years ago[analyzer] Call enter/exit diagnostic should refer to caller/callee,
Anna Zaks [Tue, 13 Mar 2012 22:15:55 +0000 (22:15 +0000)]
[analyzer] Call enter/exit diagnostic should refer to caller/callee,
respectively.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152676 91177308-0d34-0410-b5e6-96231b3b80d8

12 years ago[Basic] Fix up DiagnosticBuilder::{FlushCounts,Emit} to be inline.
Daniel Dunbar [Tue, 13 Mar 2012 21:02:14 +0000 (21:02 +0000)]
[Basic] Fix up DiagnosticBuilder::{FlushCounts,Emit} to be inline.

 - This is much more important than it appears at first glance...

The intended design of DiagnosticBuilder was that it never escape and that all
its members would get lowered to registers by the compiler. By fixing Emit here,
the compiler can completely eliminate the DiagnosticBuilder object and never
need to push those registers back into it.

Unfortunately, Sema has broken DiagnosticBuilder in other ways (by introducing
SemaDiagnosticBuilder), so we don't get the fill impact of this, but it is still
good for 30k reduction in code size. I'll work on fixing the
SemaDiagnosticBuilder problems next.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152669 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoAllow vectors to be constructed from constexpr function arguments in
Richard Smith [Tue, 13 Mar 2012 20:58:32 +0000 (20:58 +0000)]
Allow vectors to be constructed from constexpr function arguments in
constant expressions.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152665 91177308-0d34-0410-b5e6-96231b3b80d8