Commit Graph

30278 Commits

Author SHA1 Message Date
Chris Lattner 84e38557e0 Add Redhat Enterprise Linux to the Linux toolchain, PR9769,
patch by Bryce Lelbach

llvm-svn: 131840
2011-05-22 05:36:06 +00:00
Douglas Gregor a51c9ccf2d Add an assertion to tell us when we're going off the deep end trying
to determine outer template arguments lists for template
parameters. This is actually the problem behind PR9643, which I have
yet to figure out how to fix.

llvm-svn: 131822
2011-05-22 00:21:10 +00:00
Chris Lattner ecf0ba5bde adjust to mainline api change.
llvm-svn: 131815
2011-05-21 23:50:44 +00:00
Douglas Gregor 80af31397a Audit and finish the implementation of C++0x nullptr, fixing two
minor issues along the way:
  - Non-type template parameters of type 'std::nullptr_t' were not
  permitted.
  - We didn't properly introduce built-in operators for nullptr ==,
  !=, <, <=, >=, or > as candidate functions .

To my knowledge, there's only one (minor but annoying) part of nullptr
that hasn't been implemented: catching a thrown 'nullptr' as a pointer
or pointer-to-member, per C++0x [except.handle]p4.

llvm-svn: 131813
2011-05-21 23:15:46 +00:00
Douglas Gregor 291e8ee206 It's considered poor form to create references to the overloaded
function type. Educate template argument deduction thusly, fixing
PR9974 / <rdar://problem/9479155>.

llvm-svn: 131811
2011-05-21 22:16:50 +00:00
Douglas Gregor b7c36f6c68 Classify bound member function types are member function types. Fixes
PR9973 / <rdar://problem/9479191>.

llvm-svn: 131810
2011-05-21 21:04:55 +00:00
Chris Lattner 5c12367b44 switch clang off StandardPasses.h onto PassManagerBuilder.h
llvm-svn: 131808
2011-05-21 20:40:11 +00:00
Douglas Gregor 347e0f26be Fix our handling of the warning when one tries to pass a
non-POD/non-trivial object throuugh a C-style varargs. The warning
itself was default-mapped to error, but can be downgraded, but we were
treating it in Sema like a hard error, silently dropping the call.

Instead, treat this problem like a warning, and do what the warning
says we do: abort at runtime. To do so, we fake up a __builtin_trap()
expression that gets evaluated as part of the argument.

llvm-svn: 131805
2011-05-21 19:26:31 +00:00
Eli Friedman e08bca9eb4 Fix the clang part of PR7952: rewrite the specialization of isa<> in DeclBase,
and stop abusing the multi-level dereference isa<> used to allow.

llvm-svn: 131804
2011-05-21 19:15:39 +00:00
Douglas Gregor 781ba6e407 Diagnose the presence of storage-class-specifiers on explicit
instantiations and specializations. Fixes <rdar://problem/9126453> and PR8700.

llvm-svn: 131802
2011-05-21 18:53:30 +00:00
Douglas Gregor 9574af6ea2 Teach Sema::ActOnUninitializedDecl() not to try to interpret when one
should use a constructor to default-initialize a
variable. InitializationSequence knows the rules for default
initialization, better. Fixes <rdar://problem/8501008>.

llvm-svn: 131796
2011-05-21 17:52:48 +00:00
Douglas Gregor 643c922e66 Introduce the -fdiagnostics-format=xxx option to control how Clang
prints the file, line, and column of a diagnostic. We currently
support Clang's normal format, MSVC, and Vi formats.

Note that we no longer change the diagnostic format based on
-fms-extensions.

Patch by Andrew Fish!

llvm-svn: 131794
2011-05-21 17:07:29 +00:00
Douglas Gregor 61b6e49ee1 A few more is(Un)signedIntegerType/is(Un)signedOrEnumerationType cleanups.
llvm-svn: 131793
2011-05-21 16:28:01 +00:00
Douglas Gregor 253cadfe68 Implement C++0x semantics for passing non-POD classes through varargs.
llvm-svn: 131792
2011-05-21 16:27:21 +00:00
Argyrios Kyrtzidis 627c14a068 Only ignore extra tokens after #else if we skip it, otherwise warn. Fixes rdar://9475098.
llvm-svn: 131788
2011-05-21 04:26:04 +00:00
Ted Kremenek 109b127e02 Fix regression in static analyzer's handling of prefix '--' operator. It was being treated as postfix '--' in C mode.
llvm-svn: 131770
2011-05-20 23:40:06 +00:00
Alexis Hunt a671bca618 Add a missing case for default constructor deletion.
This case is tested by the fact that the modified test produces
significatly worse diagnostics. That's on the list.

llvm-svn: 131759
2011-05-20 21:43:47 +00:00
Sebastian Redl d29f6086a4 Introduce XFAILed test for braced initializer lists.
llvm-svn: 131754
2011-05-20 21:07:01 +00:00
Douglas Gregor 6ab2fa8f78 Introduce Type::isSignedIntegerOrEnumerationType() and
Type::isUnsignedIntegerOrEnumerationType(), which are like
Type::isSignedIntegerType() and Type::isUnsignedIntegerType() but also
consider the underlying type of a C++0x scoped enumeration type.

Audited all callers to the existing functions, switching those that
need to also handle scoped enumeration types (e.g., those that deal
with constant values) over to the new functions. Fixes PR9923 /
<rdar://problem/9447851>.

llvm-svn: 131735
2011-05-20 16:38:50 +00:00
Oscar Fuentes aba6a3d094 CMake: add support for CLANG_VENDOR. PR9966.
llvm-svn: 131733
2011-05-20 15:57:59 +00:00
Douglas Gregor a912197fff Downgrade the error about re-opening an inline namespace as non-inline
to a warning, since apparently libstdc++'s debug mode does this (and
we can recover safely). Add a Fix-It to insert the "inline", just for kicks.

llvm-svn: 131732
2011-05-20 15:48:31 +00:00
Douglas Gregor 4385d8b0a2 Diagnose unexpanded parameter packs in return statements. This
manifested in a crash with blocks in PR9953, but it was a ticking time
bomb for normal functions, too. Fixes PR9953.

llvm-svn: 131731
2011-05-20 15:32:55 +00:00
Benjamin Kramer 85e1664fb2 sandybridge is now called corei7-avx
llvm-svn: 131729
2011-05-20 15:11:23 +00:00
Douglas Gregor 7b0dfb3ac5 Remove the clang-test-XXX targets from the CMake builds; they really aren't useful
llvm-svn: 131728
2011-05-20 15:01:17 +00:00
Douglas Gregor 86394411d9 Clean up two comments
llvm-svn: 131727
2011-05-20 15:00:53 +00:00
Sebastian Redl 645d958035 Fix PR9941 for out-of-line template destructors too.
llvm-svn: 131722
2011-05-20 05:57:18 +00:00
Matt Beaumont-Gay 6c307aee7b Undo enough of r131143 to make private copy ctor diags say "copy constructor" again
llvm-svn: 131706
2011-05-19 23:44:42 +00:00
Ted Kremenek f377cb82f9 Teach RegionStore not to symbolic array values whose indices it cannot reason about.
llvm-svn: 131702
2011-05-19 23:37:58 +00:00
Devang Patel e7ce54074f Fix location of setter/getter synthesized for a property.
llvm-svn: 131701
2011-05-19 23:37:41 +00:00
Alexis Hunt 7957fdb60a Revert r131672 until __underlying_type is properly implemented in the
template case.

llvm-svn: 131692
2011-05-19 22:52:25 +00:00
Eli Friedman 023416f73c Fix test on Windows.
llvm-svn: 131691
2011-05-19 22:39:47 +00:00
Alexis Hunt d6cbf0d4be Implement a __has_feature for __underlying_type
llvm-svn: 131672
2011-05-19 20:48:13 +00:00
Joerg Sonnenberger 3028e46e57 Correction for r131662, the GNU as option is --fatal-warnings.
llvm-svn: 131671
2011-05-19 20:46:39 +00:00
Alexis Hunt cf5f2f41ba Add a test for __underlying_type
llvm-svn: 131670
2011-05-19 20:36:08 +00:00
Joerg Sonnenberger b487d2d815 Support -fatal-warnings for the assembler frontend
llvm-svn: 131662
2011-05-19 18:42:29 +00:00
Sebastian Redl 8035d1c435 Fix PR9941 again, this time for templates.
llvm-svn: 131640
2011-05-19 16:25:27 +00:00
David Chisnall b8f65e25d8 - Fixes openSUSE detection for 11.4 and upcoming 12.1
- Adds gcc 4.6 to gcc list so that linking will work on openSUSE 12.1

Patch by İsmail Dönmez!

llvm-svn: 131637
2011-05-19 13:26:33 +00:00
David Chisnall f62a8d0fb7 Add paths used by openSuSE 12.1
Patch by Ismail Dönmez!

llvm-svn: 131636
2011-05-19 12:04:49 +00:00
Alexis Hunt 4a2570792c Implement __underlying_type for libc++.
llvm-svn: 131633
2011-05-19 05:37:45 +00:00
Sebastian Redl 623ea82a6b Reapply r121528, fixing PR9941 by delaying the exception specification check for destructors until the class is complete and destructors have been adjusted.
llvm-svn: 131632
2011-05-19 05:13:44 +00:00
Ted Kremenek 5f06955aa0 Teach static analyzer to analyze Objective-C methods in category implementations.
llvm-svn: 131614
2011-05-19 00:56:53 +00:00
Eli Friedman 2f1e9e618c Make __builtin_shufflevector and -ftrapv work correctly together. PR9945.
llvm-svn: 131611
2011-05-19 00:37:32 +00:00
Alexis Hunt 1647354ec9 After consultation with doug, revert r131515.
llvm-svn: 131574
2011-05-18 20:57:13 +00:00
Alexis Hunt d0cdd1fab1 Revert r121528 as it breaks a simple testcase, which leads to, among
other things, libcxx not building.

llvm-svn: 131573
2011-05-18 20:57:11 +00:00
Roman Divacky c161735bdf Add ARMTargetCodeGenInfo::initDwarfEHRegSizeTable() defining 16 32bit regs.
llvm-svn: 131558
2011-05-18 19:36:54 +00:00
Sebastian Redl b900f04ccc Implement implicit exception specifications of destructors.
llvm-svn: 131528
2011-05-18 05:20:56 +00:00
Alexis Hunt e77a28f7e1 Implement an additional fix for infinite recursion of deleted special
member functions by making sure that they're on the record before
checking for deletion.

Also make sure source locations are valid to avoid crashes.

Unfortunately, the declare-all-implicit-members approach is still
required in order to ensure that dependency loops do not result in
incorrectly deleting functions (since they are to be deleted at the
declaration point per the standard).

Fixes PR9917

llvm-svn: 131520
2011-05-18 03:41:58 +00:00
Alexis Hunt 2430a6fb91 Force declaration of implicit members in C++0x mode.
I hear at least one person crying out in anguish, but it's unfortunately
necessary to avoid infinite loops with mutually dependent constructors
trying to call each other and determine if they are deleted.

It might be possible to go back to the old behavior if we can implement
part-of-file lookups efficiently, or if a solution is discovered by
which we can safely detect and avoid infinite recusion.

llvm-svn: 131515
2011-05-18 01:06:45 +00:00
Eric Christopher b29614b357 Add some support for RHEL5 systems.
llvm-svn: 131505
2011-05-17 23:06:53 +00:00
Bill Wendling 28b9e8b3a8 Conditionalize the use of 4.4 or 4.2 format based on the target.
<rdar://problem/8107317>

llvm-svn: 131504
2011-05-17 23:06:23 +00:00