Commit Graph

36722 Commits

Author SHA1 Message Date
Argyrios Kyrtzidis 94d428bb81 Remove hacky temporary fix of r151585.
llvm-svn: 152818
2012-03-15 18:07:13 +00:00
Fariborz Jahanian b31e3af6fb modern objective-c translator: please symbols generated
for @protocol expression into their own section.

llvm-svn: 152808
2012-03-15 17:05:33 +00:00
Sean Callanan d9a909cd29 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.

llvm-svn: 152807
2012-03-15 16:33:08 +00:00
Kostya Serebryany 8b0a575065 fix link
llvm-svn: 152806
2012-03-15 16:22:06 +00:00
Kostya Serebryany 83d2a94e3a [asan] update asan docs: mention CMake problem and to explain the status of MacOS 10.7 and 32-bit Linux
llvm-svn: 152805
2012-03-15 16:20:29 +00:00
Aaron Ballman 564acc9b0f Adding in newer MinGW header paths.
Patch thanks to Nikola Smiljanic

llvm-svn: 152801
2012-03-15 14:31:30 +00:00
Bill Wendling 30d03483ff 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>

llvm-svn: 152789
2012-03-15 09:27:30 +00:00
James Molloy 4813fc8ed6 Fix codegen for vld{3,4}_dup intrinsics.
Patch by Silviu Baranga!

llvm-svn: 152788
2012-03-15 09:12:01 +00:00
David Blaikie aeef2ae8f9 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.

llvm-svn: 152776
2012-03-15 05:09:31 +00:00
Richard Smith ce1ec5e1f5 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.

llvm-svn: 152775
2012-03-15 04:53:45 +00:00
David Blaikie ebcbe4b6aa 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.

llvm-svn: 152774
2012-03-15 04:50:32 +00:00
Daniel Dunbar dee601905a Revert r152761 "Minor optimization to constant evaluation: don't bother
computing expr source...", it breaks bootstrap.

llvm-svn: 152772
2012-03-15 03:04:21 +00:00
Richard Smith 62dad82f2c Small cleanup: move trailing-return-type special-casing into
getDeclSpecContextFromDeclaratorContext.

llvm-svn: 152766
2012-03-15 01:02:11 +00:00
Chad Rosier 2860fbb747 Revert r152745 as it's breaking the internal buildbots.
Abbreviated commit message:
Provide -Wnull-conversion separately from -Wconversion.

llvm-svn: 152765
2012-03-15 01:00:38 +00:00
Richard Smith 79aa513231 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.

llvm-svn: 152761
2012-03-15 00:41:48 +00:00
Richard Smith eece8c3993 Remove a variable rendered unused by r152750.
llvm-svn: 152758
2012-03-15 00:22:18 +00:00
Aaron Ballman c42d838d9f Adding some more specific tests for enum declspec parsing, to prove that it really works.
llvm-svn: 152757
2012-03-15 00:20:05 +00:00
Chad Rosier 883b2579aa [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

llvm-svn: 152754
2012-03-14 23:32:11 +00:00
Fariborz Jahanian 07a423d652 modern objective-c translator: section info.
and metadata for "non-lazy" class and categories.

llvm-svn: 152751
2012-03-14 23:18:19 +00:00
Richard Smith 4b38ded66a 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.

llvm-svn: 152750
2012-03-14 23:13:10 +00:00
Matt Beaumont-Gay be84d85905 '#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.)

llvm-svn: 152749
2012-03-14 23:12:42 +00:00
David Blaikie 1ce8dbb93f 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.

llvm-svn: 152745
2012-03-14 22:28:22 +00:00
Fariborz Jahanian ddddca3e6d objective-c modern tranaltor. More section info.
for misc. objc meta-data.

llvm-svn: 152743
2012-03-14 21:44:09 +00:00
Anna Zaks 3a0f57057e [analyzer] A fixup to r152734. Always initialize the flag.
llvm-svn: 152742
2012-03-14 21:24:14 +00:00
Aaron Ballman bc9e04342d No longer defining LP64 in 64-bit builds on platforms which are not LP64.
llvm-svn: 152740
2012-03-14 20:50:57 +00:00
Nick Lewycky fcd5e7a160 When emitting a diagnostic about two-phase name lookup, don't do useless
qualified name lookups into transparent contexts.

llvm-svn: 152739
2012-03-14 20:41:00 +00:00
Matt Beaumont-Gay dcc425ec19 Fix dereference of end iterator. Spotted by ASan.
llvm-svn: 152738
2012-03-14 20:21:25 +00:00
Anna Zaks d4e9059fe0 [analyzer] Diagnostics: Supply Caller information even if the bug occurs
in the callee.

llvm-svn: 152734
2012-03-14 18:58:28 +00:00
Fariborz Jahanian 4548962f00 objective-c modern translator.
Add the _class_ro_t.reserved field for 64bit targets.
// rdar://11040024

llvm-svn: 152731
2012-03-14 18:09:23 +00:00
Erik Verbruggen 5923cbd27b [Analyser] Remove unnecessary recursive visits for ExprWithCleanups and
MaterializeTemporaryExpr.

llvm-svn: 152730
2012-03-14 18:01:43 +00:00
Douglas Gregor d23e333bf6 Remove clang-wpa example, which has been unmaintained for quite a while.
llvm-svn: 152729
2012-03-14 17:29:44 +00:00
Douglas Gregor 5c3cc42342 Minor cleanup in attribute-related diagnostics, from Alexander Kornienko!
llvm-svn: 152725
2012-03-14 16:55:17 +00:00
Sebastian Redl db63af2216 Parse brace initializers as default arguments. PR12236.
llvm-svn: 152721
2012-03-14 15:54:00 +00:00
Erik Verbruggen fe66dd624d [Analyser] Removes more recursive visitations in ExprEngine that are no
longer needed as the CFG is fully linearized.

llvm-svn: 152720
2012-03-14 15:38:55 +00:00
Daniel Dunbar 7be12296fe [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.

llvm-svn: 152709
2012-03-14 09:49:36 +00:00
Daniel Dunbar d671ab94fe [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.

llvm-svn: 152708
2012-03-14 09:49:32 +00:00
Matt Beaumont-Gay 1c883c58dd Remove trailing whitespace (especially after a \ which should be trailing)
llvm-svn: 152695
2012-03-14 01:23:41 +00:00
Benjamin Kramer 91b9ac8ae9 -arch is a darwin-only feature, use -target instead to make the linux buildbots happy again.
Also check the error message.

llvm-svn: 152694
2012-03-14 01:17:52 +00:00
Eric Christopher d36ad66785 Add support to mangle templated member function names with template
args.

Fixes rdar://11042577

llvm-svn: 152691
2012-03-14 00:25:46 +00:00
Chad Rosier b8d8b4cb65 Typo.
llvm-svn: 152686
2012-03-13 23:48:50 +00:00
Fariborz Jahanian fff69d077f objective-c modern rewriter. Do not add _class_ro_t.reserved
field. // rdar://11040024

llvm-svn: 152685
2012-03-13 23:48:09 +00:00
Chad Rosier 864dfe11bd [driver] Clang should report an error for -faltivec on non-ppc.
rdar://10963572

llvm-svn: 152684
2012-03-13 23:45:51 +00:00
Eric Christopher 947bb5a1f1 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

llvm-svn: 152683
2012-03-13 23:40:48 +00:00
David Blaikie 5a384a61e2 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.

llvm-svn: 152681
2012-03-13 23:33:06 +00:00
Anna Zaks 9ff686239a [analyser] Refactor shouldInline logic into a helper.
llvm-svn: 152677
2012-03-13 22:15:58 +00:00
Anna Zaks 6e5b48a6b4 [analyzer] Call enter/exit diagnostic should refer to caller/callee,
respectively.

llvm-svn: 152676
2012-03-13 22:15:55 +00:00
Daniel Dunbar c7c0089b44 [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.

llvm-svn: 152669
2012-03-13 21:02:14 +00:00
Richard Smith ac2f0b1f91 Allow vectors to be constructed from constexpr function arguments in
constant expressions.

llvm-svn: 152665
2012-03-13 20:58:32 +00:00
Chad Rosier 8028640704 Update test case to use not tool.
llvm-svn: 152664
2012-03-13 20:31:40 +00:00
Chad Rosier d6f716ab2a [driver] Parse diagnostic args in the driver.
Previously, only diagnostics thrown by the cc1 process were
actually honoring the diagnostic options given on the command line,
like -Werror.

Reuse the existing code in Frontend currently used for cc1,
adjusting it to not interpret -Wl, linker flags as warnings.

Also fix a faulty test exposed by this change.
It wasn't actually testing anything, and was giving this warning:

clang-3: warning: argument unused during compilation: '-verify'

Which -Werror didn't turn into an error because it was output
by the driver, not the cc1 process, and diagnostic options
weren't parsed by the driver. And you couldn't see the warning
when running the test suite.

Fixes PR12181.
Patch by Dylan Noblesmith <nobled@dreamwidth.org>.

llvm-svn: 152660
2012-03-13 20:09:56 +00:00