]> granicus.if.org Git - clang/log
clang
10 years agoclang/test/CodeGenCXX/debug-info-varargs.cpp: Appease msvc with %itanium_abi_triple.
NAKAMURA Takumi [Wed, 26 Feb 2014 03:30:03 +0000 (03:30 +0000)]
clang/test/CodeGenCXX/debug-info-varargs.cpp: Appease msvc with %itanium_abi_triple.

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

10 years ago80-col and bad line ending fixups.
Eric Christopher [Wed, 26 Feb 2014 02:49:36 +0000 (02:49 +0000)]
80-col and bad line ending fixups.

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

10 years agoPR16074, implement warnings to catch pointer to boolean true and pointer to
Richard Trieu [Wed, 26 Feb 2014 02:36:06 +0000 (02:36 +0000)]
PR16074, implement warnings to catch pointer to boolean true and pointer to
null comparison when the pointer is known to be non-null.

This catches the array to pointer decay, function to pointer decay and
address of variables.  This does not catch address of function since this
has been previously used to silence a warning.

Pointer to bool conversion is under -Wbool-conversion.
Pointer to null comparison is under -Wtautological-pointer-compare, a sub-group
of -Wtautological-compare.

void foo() {
  int arr[5];
  int x;
  // warn on these conditionals
  if (foo);
  if (arr);
  if (&x);
  if (foo == null);
  if (arr == null);
  if (&x == null);

  if (&foo);  // no warning
}

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

10 years ago[analyzer] NonNullParamChecker: don't freak out about nested transparent_unions.
Jordan Rose [Wed, 26 Feb 2014 01:20:19 +0000 (01:20 +0000)]
[analyzer] NonNullParamChecker: don't freak out about nested transparent_unions.

For now, just ignore them. Later, we could try looking through LazyCompoundVals,
but we at least shouldn't crash.

<rdar://problem/16153464>

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

10 years agoAdd -Wabsolute-value, warnings about absolute value functions.
Richard Trieu [Wed, 26 Feb 2014 01:17:28 +0000 (01:17 +0000)]
Add -Wabsolute-value, warnings about absolute value functions.

The warnings fall into three groups.
1) Using an absolute value function of the wrong type, for instance, using the
int absolute value function when the argument is a floating point type.
2) Using the improper sized absolute value function, for instance, using abs
when the argument is a long long.  llabs should be used instead.

From these two cases, an implicit conversion will occur which may cause
unexpected behavior.  Where possible, suggest the proper absolute value
function to use, and which header to include if the function is not available.

3) Taking the absolute value of an unsigned value.  In addition to this warning,
suggest to remove the function call.  This usually indicates a logic error
since the programmer assumed negative values would have been possible.

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

10 years agoAddress review comments for r202185, no functionality changes.
Adrian Prantl [Tue, 25 Feb 2014 23:42:18 +0000 (23:42 +0000)]
Address review comments for r202185, no functionality changes.

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

10 years agoHoist culling of -Wunreachable-code from headers before we even run the analysis.
Ted Kremenek [Tue, 25 Feb 2014 22:35:37 +0000 (22:35 +0000)]
Hoist culling of -Wunreachable-code from headers before we even run the analysis.

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

10 years agoDebug info: Generate debug info for variadic functions.
Adrian Prantl [Tue, 25 Feb 2014 19:38:11 +0000 (19:38 +0000)]
Debug info: Generate debug info for variadic functions.
Paired commit with LLVM.

rdar://problem/13690847

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

10 years agoAdd preprocessed output to ccc-analyzer's accepted language map.
Ted Kremenek [Tue, 25 Feb 2014 19:16:33 +0000 (19:16 +0000)]
Add preprocessed output to ccc-analyzer's accepted language map.

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

10 years agoPretty Printer: Print constexpr and ref qualifiers. Don't print return types on destr...
Benjamin Kramer [Tue, 25 Feb 2014 18:49:49 +0000 (18:49 +0000)]
Pretty Printer: Print constexpr and ref qualifiers. Don't print return types on destructors.

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

10 years agoPass the sparc architecture variant to the assembler.
Roman Divacky [Tue, 25 Feb 2014 18:45:49 +0000 (18:45 +0000)]
Pass the sparc architecture variant to the assembler.

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

10 years agoclang-cl: use -fno-rtti by default
Hans Wennborg [Tue, 25 Feb 2014 18:36:22 +0000 (18:36 +0000)]
clang-cl: use -fno-rtti by default

Generating RTTI in the MS ABI is currently not supported, and the failures
are confusing to users, so let's disable it by default for now.

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

10 years agoGive sparcv9 the ability to set the target cpu. Change it from accepting
Roman Divacky [Tue, 25 Feb 2014 18:35:30 +0000 (18:35 +0000)]
Give sparcv9 the ability to set the target cpu. Change it from accepting
-march which doesnt exist on sparc gcc to -mcpu. While here adjust a
few tests to not write an unused temporary file.

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

10 years agoAdd a driver option -ivfsoverlay
Ben Langmuir [Tue, 25 Feb 2014 18:23:47 +0000 (18:23 +0000)]
Add a driver option -ivfsoverlay

Reads the description of a virtual filesystem from a file and overlays
it over the real file system.

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

10 years agoMS ABI: Just use getTypeInfoInChars to get the field size
Reid Kleckner [Tue, 25 Feb 2014 18:08:48 +0000 (18:08 +0000)]
MS ABI: Just use getTypeInfoInChars to get the field size

This was changed to use manual desugaring and multiplication in r201832
and fixed for multi-dimensional arrays in r201917.  However, it breaks
down in the presence of typedefs.  Rather than attempting to handle all
the desugaring, just go back to calling the generic type info code.

This was discovered while compiling SIInstrWaits.cpp in the R600
backend.

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

10 years agoReapply "Pretty Printer: Fix printing of conversion operator decls and calls."
Benjamin Kramer [Tue, 25 Feb 2014 18:03:55 +0000 (18:03 +0000)]
Reapply "Pretty Printer: Fix printing of conversion operator decls and calls."

There were many additional tests that had the bad behavior baked in.

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

10 years agoRevert "Pretty Printer: Fix printing of conversion operator decls and calls."
Rafael Espindola [Tue, 25 Feb 2014 17:39:16 +0000 (17:39 +0000)]
Revert "Pretty Printer: Fix printing of conversion operator decls and calls."

This reverts commit r202167.

It broke Analysis/auto-obj-dtors-cfg-output.cpp

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

10 years agoUpdate for llvm api change.
Rafael Espindola [Tue, 25 Feb 2014 17:30:40 +0000 (17:30 +0000)]
Update for llvm api change.

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

10 years agoPretty Printer: Fix printing of conversion operator decls and calls.
Benjamin Kramer [Tue, 25 Feb 2014 17:26:26 +0000 (17:26 +0000)]
Pretty Printer: Fix printing of conversion operator decls and calls.

- Don't emit anything when we encounter a call to a conversion operator.
    "bar(a & b)" instead of "bar(a & b.operator int())"
  This preserves the semantics and is still idempotent if we print the AST multiple times.

- Properly print declarations of conversion operators.
    "explicit operator bool();" instead of "bool operator _Bool();"

PR18776.

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

10 years agoAArch64: use different type modifier in arm_neon.td
Tim Northover [Tue, 25 Feb 2014 13:53:01 +0000 (13:53 +0000)]
AArch64: use different type modifier in arm_neon.td

The 'f' modifier is designed for integer type arguments really (according to
its documentation). It's better to use the "half width, same number" modifier.

Should be no user-visible change.

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

10 years agoAdd AArch64 big endian Target (aarch64_be)
Christian Pirker [Tue, 25 Feb 2014 13:51:00 +0000 (13:51 +0000)]
Add AArch64 big endian Target (aarch64_be)

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

10 years agoRespect ToolChain::isPIEDefault() in constructing link job on Linux and FreeBSD.
Alexey Samsonov [Tue, 25 Feb 2014 13:26:03 +0000 (13:26 +0000)]
Respect ToolChain::isPIEDefault() in constructing link job on Linux and FreeBSD.

Partially based on http://llvm-reviews.chandlerc.com/D2644 by Viktor Kutuzov.

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

10 years agoFactor adding sanitizer linker flags into a separate function and make it less OS...
Alexey Samsonov [Tue, 25 Feb 2014 12:43:43 +0000 (12:43 +0000)]
Factor adding sanitizer linker flags into a separate function and make it less OS-specific

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

10 years agoSema: When merging objc string literals, give the result a constant array type.
Benjamin Kramer [Tue, 25 Feb 2014 12:26:20 +0000 (12:26 +0000)]
Sema: When merging objc string literals, give the result a constant array type.

Also assert that we never create non-array string literals again.

PR18939.

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

10 years agoRewriteObjC: Factor string literal creation into a helper and make sure it gets a...
Benjamin Kramer [Tue, 25 Feb 2014 12:26:11 +0000 (12:26 +0000)]
RewriteObjC: Factor string literal creation into a helper and make sure it gets a proper constant array type.

No change in output.

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

10 years agoARM NEON: fix tests after r202137
Tim Northover [Tue, 25 Feb 2014 11:48:25 +0000 (11:48 +0000)]
ARM NEON: fix tests after r202137

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

10 years agoFix typo.
Serge Pavlov [Tue, 25 Feb 2014 11:32:34 +0000 (11:32 +0000)]
Fix typo.

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

10 years agoFix for Bug 18536 - Bad alignment in clang/AST/StmpOpenMP.h
Alexey Bataev [Tue, 25 Feb 2014 11:25:38 +0000 (11:25 +0000)]
Fix for Bug 18536 - Bad alignment in clang/AST/StmpOpenMP.h

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

10 years agoAArch64 NEON: add 64-bit scalar intrinsics for _f64 mla/mls etc.
Tim Northover [Tue, 25 Feb 2014 11:13:49 +0000 (11:13 +0000)]
AArch64 NEON: add 64-bit scalar intrinsics for _f64 mla/mls etc.

These seem to be supported by GCC, and do make sense architecturally so we
should probably have them.

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

10 years agoARM NEON: add _f16 support to a couple of vector-shuffling intrinsics.
Tim Northover [Tue, 25 Feb 2014 11:13:42 +0000 (11:13 +0000)]
ARM NEON: add _f16 support to a couple of vector-shuffling intrinsics.

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

10 years agoIRGen: Remove a stale comment
David Majnemer [Tue, 25 Feb 2014 10:51:14 +0000 (10:51 +0000)]
IRGen: Remove a stale comment

This comment survived the transition from ForceInline to InlineAlways,
fix it.

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

10 years agoAttr: Remove ForceInline
David Majnemer [Tue, 25 Feb 2014 09:53:29 +0000 (09:53 +0000)]
Attr: Remove ForceInline

The __forceinline keyword's semantics are now recast as AlwaysInline and
the kw___forceinline token has its language mode set for KEYMS.

This preserves the semantics of the previous implementation but with
less duplication of code.

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

10 years agoAttributeReference: Document __single_inhertiance, __multiple_inheritance, __virtual_...
David Majnemer [Tue, 25 Feb 2014 08:28:55 +0000 (08:28 +0000)]
AttributeReference: Document __single_inhertiance, __multiple_inheritance, __virtual_inheritance

Add documentation for these attributes, it includes:
- Motivation for their existence.
- Examples on how to use them.
- Examples on how to misuse them.

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

10 years agoModules: Fix malformed reStructuredText
David Majnemer [Tue, 25 Feb 2014 06:22:25 +0000 (06:22 +0000)]
Modules: Fix malformed reStructuredText

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

10 years agoFix typo in the td source too
Alp Toker [Tue, 25 Feb 2014 06:02:42 +0000 (06:02 +0000)]
Fix typo in the td source too

r202112 fixed the generated output which will hopefully go away soon.

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

10 years agoRemove dead assignment reported by Gautier DI FOLCO.
Ted Kremenek [Tue, 25 Feb 2014 05:58:54 +0000 (05:58 +0000)]
Remove dead assignment reported by Gautier DI FOLCO.

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

10 years agoRemove the FormatSecurity diagnostic group from the FormatNonLiteral warning group.
Ted Kremenek [Tue, 25 Feb 2014 05:42:31 +0000 (05:42 +0000)]
Remove the FormatSecurity diagnostic group from the FormatNonLiteral warning group.

The FormatSecurity warning group does not need to be a sub-group
of the FormatNonLiteral group.

Patch by Zach Davis!

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

10 years agoAttributeReference: Fix a typo
David Majnemer [Tue, 25 Feb 2014 05:33:01 +0000 (05:33 +0000)]
AttributeReference: Fix a typo

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

10 years agoAllow multi-component paths in VFS file nodes
Ben Langmuir [Tue, 25 Feb 2014 04:34:14 +0000 (04:34 +0000)]
Allow multi-component paths in VFS file nodes

This allows the 'name' field to contain a path, like

{ 'type': 'directory',
  'name': '/path/to/dir',
  'contents': [ ... ] }

which not only simplifies reading and writing these files (for humans),
but makes it possible to easily modify locations via textual
replacement, which would not have worked in the old scheme.

E.g. sed s:<ROOT>:<NEW ROOT>

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

10 years agoFix typos
Alp Toker [Tue, 25 Feb 2014 04:21:44 +0000 (04:21 +0000)]
Fix typos

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

10 years ago[libclang] Introduce libclang APIs for creating a buffer with a JSON virtual file...
Argyrios Kyrtzidis [Tue, 25 Feb 2014 03:59:23 +0000 (03:59 +0000)]
[libclang] Introduce libclang APIs for creating a buffer with a JSON virtual file overlay description.

The current API only supports adding 'virtual file path' -> 'real file path' mappings.

rdar://15986708

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

10 years ago[libclang] Include "BuildSystem.h" along with "Index.h"
Argyrios Kyrtzidis [Tue, 25 Feb 2014 03:59:16 +0000 (03:59 +0000)]
[libclang] Include "BuildSystem.h" along with "Index.h"

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

10 years agoAST: Simplify CharUnits::alignmentAtOffset
David Majnemer [Tue, 25 Feb 2014 01:47:33 +0000 (01:47 +0000)]
AST: Simplify CharUnits::alignmentAtOffset

CharUnits::alignmentAtOffset is equivalent to llvm::MinAlign but
slightly less efficient.  Use it's implementation instead.

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

10 years agoIRGen: Simplify alignment calculation in setBitFieldInfo
David Majnemer [Tue, 25 Feb 2014 01:20:15 +0000 (01:20 +0000)]
IRGen: Simplify alignment calculation in setBitFieldInfo

Take advantage of CharUnits::alignmentAtOffset instead of calculating it
by hand.

Differential Revision: http://llvm-reviews.chandlerc.com/D2862

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

10 years agoMS ABI: Return sret parameters when using inalloca
Reid Kleckner [Tue, 25 Feb 2014 00:59:14 +0000 (00:59 +0000)]
MS ABI: Return sret parameters when using inalloca

Previously the X86 backend would look for the sret attribute and handle
this for us.  inalloca takes that all away, so we have to do the return
ourselves now.

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

10 years agoclang/test/Preprocessor/init.c: Split conditions to win32 and non-win32.
NAKAMURA Takumi [Tue, 25 Feb 2014 00:30:14 +0000 (00:30 +0000)]
clang/test/Preprocessor/init.c: Split conditions to win32 and non-win32.

FIXME: Implement and check x86_64-cygwin.

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

10 years agoSuppress clang/test/Driver/clang_f_opts.c for targeting cygming since r202058 is...
NAKAMURA Takumi [Tue, 25 Feb 2014 00:30:04 +0000 (00:30 +0000)]
Suppress clang/test/Driver/clang_f_opts.c for targeting cygming since r202058 is incompatible to gcc driver.

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

10 years agoImprove some gtest assertions
Ben Langmuir [Mon, 24 Feb 2014 23:44:17 +0000 (23:44 +0000)]
Improve some gtest assertions

As requested during review, compare pointers to NULL explicitly to make what's
going on more clear.

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

10 years agoAST: Small code cleanup
David Majnemer [Mon, 24 Feb 2014 23:43:27 +0000 (23:43 +0000)]
AST: Small code cleanup

Move the pointer to be adjacent to the variable instead of the type.

No functional change.

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

10 years agoSema: Make getPreferredTypeAlign respect alignments specified with an aligned attribu...
David Majnemer [Mon, 24 Feb 2014 23:34:17 +0000 (23:34 +0000)]
Sema: Make getPreferredTypeAlign respect alignments specified with an aligned attribute on a typedef

When calculating the preferred alignment of a type, consider if a alignment
attribute came from a typedef declaration.  If one did, do not naturally align
the type.

Patch by Stephan Tolksdorf, with a little tweaking and an additional testcase by me.

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

10 years agoPass through context for DiagHandler in VFS
Ben Langmuir [Mon, 24 Feb 2014 20:56:37 +0000 (20:56 +0000)]
Pass through context for DiagHandler in VFS

This allows the unit tests to not use global state when checking
diagnostics.

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

10 years agoIf preprocessing results in a token with leading whitespace that was expanded
Richard Smith [Mon, 24 Feb 2014 20:50:36 +0000 (20:50 +0000)]
If preprocessing results in a token with leading whitespace that was expanded
from a macro in column 0, ensure that we print whitespace before it in the -E
output. Patch by Harald van Dijk!

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

10 years agoFollow up to r201927: remove the Sema::InFunctionDeclarator field.
Peter Collingbourne [Mon, 24 Feb 2014 20:45:14 +0000 (20:45 +0000)]
Follow up to r201927: remove the Sema::InFunctionDeclarator field.

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

10 years agoIf the first token in a macro that appears at the start of a line expands to
Richard Smith [Mon, 24 Feb 2014 20:45:00 +0000 (20:45 +0000)]
If the first token in a macro that appears at the start of a line expands to
nothing, be sure to inform the *next* token expanded from the macro that it is
now at the start of a line. Patch by Harald van Dijk!

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

10 years agoAdd a test for r202059.
Roman Divacky [Mon, 24 Feb 2014 19:24:15 +0000 (19:24 +0000)]
Add a test for r202059.

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

10 years agoObjective-C. Remove an assertion which asserts
Fariborz Jahanian [Mon, 24 Feb 2014 19:10:37 +0000 (19:10 +0000)]
Objective-C. Remove an assertion which asserts
on correctly handled block layout IRGen.
// rdar://16111839

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

10 years agoImplement getDwarfEHStackPointer() and initDwarfEHRegSizeTable() for sparcv9.
Roman Divacky [Mon, 24 Feb 2014 18:46:27 +0000 (18:46 +0000)]
Implement getDwarfEHStackPointer() and initDwarfEHRegSizeTable() for sparcv9.

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

10 years agoImplement -fno-short-wchar
Richard Barton [Mon, 24 Feb 2014 18:43:28 +0000 (18:43 +0000)]
Implement -fno-short-wchar

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

10 years agoUpdate for llvm api change.
Rafael Espindola [Mon, 24 Feb 2014 18:20:21 +0000 (18:20 +0000)]
Update for llvm api change.

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

10 years ago[Win32 ABI] Defer operator delete checks until vtable is marked used
Hans Wennborg [Mon, 24 Feb 2014 15:58:24 +0000 (15:58 +0000)]
[Win32 ABI] Defer operator delete checks until vtable is marked used

We were previously checking at every destructor declaration, but that was a bit
excessive. Since the deleting destructor is emitted with the vtable, do the
check when the vtable is marked used.

Differential Revision: http://llvm-reviews.chandlerc.com/D2851

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

10 years agoDon't assume that F_None is the default. It is about to change.
Rafael Espindola [Mon, 24 Feb 2014 15:06:52 +0000 (15:06 +0000)]
Don't assume that F_None is the default. It is about to change.

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

10 years agoClarifying the wording for the noduplicate attribute.
Aaron Ballman [Mon, 24 Feb 2014 13:46:15 +0000 (13:46 +0000)]
Clarifying the wording for the noduplicate attribute.

Patch by Marcello Maggioni!

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

10 years agoFix AST matcher documentation for overloaded matchers.
Manuel Klimek [Mon, 24 Feb 2014 10:40:22 +0000 (10:40 +0000)]
Fix AST matcher documentation for overloaded matchers.

Before this patch we would only use the fist occurance of a matcher
function in the documentation, for example leaving out
hasType(Matcher<QualType>).

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

10 years agoFix docs generation for the AST matchers:
Manuel Klimek [Mon, 24 Feb 2014 10:28:36 +0000 (10:28 +0000)]
Fix docs generation for the AST matchers:

1. Move internal functions into ASTMatchersInternal.
2. Adapt dump_ast_matchers.py to the new VariadicOperatorMatcherFunc
   signature.
3. Update the actual docs with the updated tool / code.

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

10 years agoASTMatchers: added CXXMethodDecl matcher isPure()
Dmitri Gribenko [Mon, 24 Feb 2014 09:27:46 +0000 (09:27 +0000)]
ASTMatchers: added CXXMethodDecl matcher isPure()

The isPure() CXXMethodDecl matcher matches pure method declaration like "A::x"
in this example:

class A {
  virtual void x() = 0;
}

Patch by Konrad Kleine.

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

10 years agoAdd driver test for multiple preprocessor inputs
Alp Toker [Mon, 24 Feb 2014 08:17:02 +0000 (08:17 +0000)]
Add driver test for multiple preprocessor inputs

Fix an unintentional stdin read in the darwin-asan-nofortify.c test and replace
it with an explicit test for multiple -E inputs passed to the driver.

Noticed while working on the in-process driver patch.

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

10 years agoUse a more conventional logical op instead of bitwise and
Alp Toker [Mon, 24 Feb 2014 04:35:58 +0000 (04:35 +0000)]
Use a more conventional logical op instead of bitwise and

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

10 years ago[AArch64] Change int64_t from 'long long int' to 'long int' for AArch64 target.
Kevin Qin [Mon, 24 Feb 2014 02:45:03 +0000 (02:45 +0000)]
[AArch64] Change int64_t from 'long long int' to 'long int' for AArch64 target.

Most 64-bit targets define int64_t as long int, and AArch64 should
make same definition to follow LP64 model. In GNU tool chain, int64_t
is defined as long int for 64-bit target. So to get consistent with GNU,
it's better Changing int64_t from 'long long int' to 'long int',
otherwise clang will get different name mangling suffix compared with g++.

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

10 years agoUpdate __cplusplus to match the value in the C++14 DIS preview (D3937).
Richard Smith [Mon, 24 Feb 2014 01:35:45 +0000 (01:35 +0000)]
Update __cplusplus to match the value in the C++14 DIS preview (D3937).

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

10 years agoDo not put instrumentation counters before phis in ObjC for-in loops.
Bob Wilson [Mon, 24 Feb 2014 01:13:09 +0000 (01:13 +0000)]
Do not put instrumentation counters before phis in ObjC for-in loops.

We still don't use the PGO to set branch weights for these loops, but at
least this keeps the compiler from crashing. <rdar://problem/16137778>

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

10 years ago[Index] Make the USRs more stable.
Argyrios Kyrtzidis [Sun, 23 Feb 2014 18:23:29 +0000 (18:23 +0000)]
[Index] Make the USRs more stable.

- Only include offsets with local (in function scope) symbols, where we don't encode scoping
- Only include the filename with non-system symbols. Presumably the system headers will not provide conflicting definitions.

rdar://15976823

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

10 years agoFixing the indentation of the RST content in the release notes. Fixes two warnings...
Aaron Ballman [Sun, 23 Feb 2014 16:27:21 +0000 (16:27 +0000)]
Fixing the indentation of the RST content in the release notes. Fixes two warnings when building the HTML content and improves the format of the resulting content.

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

10 years agoSema: Simplify away one-iteration loops.
Benjamin Kramer [Sun, 23 Feb 2014 14:34:50 +0000 (14:34 +0000)]
Sema: Simplify away one-iteration loops.

No functionality change.

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

10 years ago[CMake] Resurrect mis-dropped dependency to ClangDriverOptions since r201842.
NAKAMURA Takumi [Sun, 23 Feb 2014 13:44:09 +0000 (13:44 +0000)]
[CMake] Resurrect mis-dropped dependency to ClangDriverOptions since r201842.

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

10 years ago[CMake] clang_tblgen: Use add_public_tablegen_target.
NAKAMURA Takumi [Sun, 23 Feb 2014 13:08:07 +0000 (13:08 +0000)]
[CMake] clang_tblgen: Use add_public_tablegen_target.

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

10 years ago[CMake] Deprecate clang_tablegen(DEPENDS).
NAKAMURA Takumi [Sun, 23 Feb 2014 12:53:45 +0000 (12:53 +0000)]
[CMake] Deprecate clang_tablegen(DEPENDS).

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

10 years agoFix crash when both ExpectAndConsume and ConsumeAnyToken emit diagnostics
Alp Toker [Sun, 23 Feb 2014 03:45:03 +0000 (03:45 +0000)]
Fix crash when both ExpectAndConsume and ConsumeAnyToken emit diagnostics

The DiagnosticBuilder's lifetime in parser typo recovery was overlapping with
the subsequent consume which can itself emit PP diagnostics.

Patch by Olivier Goffart!

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

10 years agoRelease Notes: document -f{,no-}integrate-as
Saleem Abdulrasool [Sun, 23 Feb 2014 02:08:45 +0000 (02:08 +0000)]
Release Notes: document -f{,no-}integrate-as

Now that the integrated assembler is considered a first class feature of the
compiler and has a proper feature flag, document the change in the compiler
flags.  Ensure that we indicate that the legacy flags are still available, but,
encourage users to switch to the feature flags.

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

10 years agoclang: add -f{no-,}integrate-as as consistent parameters
Saleem Abdulrasool [Sun, 23 Feb 2014 00:40:30 +0000 (00:40 +0000)]
clang: add -f{no-,}integrate-as as consistent parameters

The integrated assembler is a feature.  This makes the new flags the default
option, and the previous versions aliases.  Ideally, at some point the aliases
would be entirely removed.

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

10 years agoRemove support for the QA_OVERRIDE_GCC3_OPTIONS environment variable.
Bob Wilson [Sun, 23 Feb 2014 00:11:56 +0000 (00:11 +0000)]
Remove support for the QA_OVERRIDE_GCC3_OPTIONS environment variable.

In r199283 I switched the name of this variable to CCC_OVERRIDE_OPTIONS, but
I kept some code to continue recognizing the old name temporarily. As far as
I know, the only use of this was for some internal testing at Apple, and we've
now switched to use the new name. If anyone else is still using this and needs
more time to switch names, I guess we'll find out! <rdar://problem/15821425>

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

10 years agoclang: forward -no-integrated-as from the driver
Saleem Abdulrasool [Sat, 22 Feb 2014 23:37:58 +0000 (23:37 +0000)]
clang: forward -no-integrated-as from the driver

Forward the -no-integrated-as option to -cc1 rather than simply invoking the
appropriate tool.  This is useful since this option has been overloaded to
permit disabling of parsing inline assembly at the MC layer.

This re-applies the previous version of the patch with a renaming of the driver
option to the public name rather than the internal name (-target vs -triple).
The actual failure is fixed separately of an overly aggressive negative pattern
match in the MIPS driver tests.  It also fixes the incorrect test for targets
that have the integrated assembler disabled by default.

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

10 years agotest: fix MIPS driver tests
Saleem Abdulrasool [Sat, 22 Feb 2014 23:37:54 +0000 (23:37 +0000)]
test: fix MIPS driver tests

The tests attempt to validate the invocation of the assembler program with the
integrated assembler disabled.  However, the match pattern for the negative
tests are lax and will match both the driver invocation as well as the assembler
invocation.  Make the tests more strict by ensuring that we only match the
assembler invocation.

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

10 years agoRevert "clang: forward -no-integrated-as from the driver"
Saleem Abdulrasool [Sat, 22 Feb 2014 22:24:00 +0000 (22:24 +0000)]
Revert "clang: forward -no-integrated-as from the driver"

This seems to break a MIPS test.  Revert until I figure out the root cause.

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

10 years agoclang: forward -no-integrated-as from the driver
Saleem Abdulrasool [Sat, 22 Feb 2014 21:50:09 +0000 (21:50 +0000)]
clang: forward -no-integrated-as from the driver

Forward the -no-integrated-as option to -cc1 rather than simply invoking the
appropriate tool.  This is useful since this option has been overloaded to
permit disabling of parsing inline assembly at the MC layer.

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

10 years agoReorganize and improve semantic tests for dllexport/import
Nico Rieck [Sat, 22 Feb 2014 19:47:30 +0000 (19:47 +0000)]
Reorganize and improve semantic tests for dllexport/import

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

10 years agoAdding manual headings to the new capability attributes' documentation.
Aaron Ballman [Sat, 22 Feb 2014 19:04:55 +0000 (19:04 +0000)]
Adding manual headings to the new capability attributes' documentation.

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

10 years agoExposing the noduplicate attribute within Clang, which marks functions so that the...
Aaron Ballman [Sat, 22 Feb 2014 16:59:24 +0000 (16:59 +0000)]
Exposing the noduplicate attribute within Clang, which marks functions so that the optimizer does not duplicate code.

Patch thanks to Marcello Maggioni!

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

10 years agoDo not add enums to prototype scope in C++ modes.
Peter Collingbourne [Sat, 22 Feb 2014 03:05:49 +0000 (03:05 +0000)]
Do not add enums to prototype scope in C++ modes.

The language forbids defining enums in prototypes, so this check is normally
redundant, but if an enum is defined during template instantiation it should
not be added to the prototype scope.

While at it, clean up the code that deals with tag definitions in prototype
scope and expand the visibility warning to cover the case where an anonymous
enum is defined.

Differential Revision: http://llvm-reviews.chandlerc.com/D2742

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

10 years agoCorrectly set brace range for CXXConstructExprs formed by list initialization.
Peter Collingbourne [Sat, 22 Feb 2014 02:59:41 +0000 (02:59 +0000)]
Correctly set brace range for CXXConstructExprs formed by list initialization.

Differential Revision: http://llvm-reviews.chandlerc.com/D2711

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

10 years agoPer feedback from Aaron Ballman, push cast-to-ObjCProtocolDecl inside handleObjCSuppr...
Ted Kremenek [Sat, 22 Feb 2014 01:06:05 +0000 (01:06 +0000)]
Per feedback from Aaron Ballman, push cast-to-ObjCProtocolDecl inside handleObjCSuppresProtocolAttr().

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

10 years ago[_mm_prefetch] Returning previously deleted comment.
Warren Hunt [Sat, 22 Feb 2014 00:47:24 +0000 (00:47 +0000)]
[_mm_prefetch] Returning previously deleted comment.
No functional change.  It's unclear if the word FIXME is relevant given
that the macro behaves as intended.

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

10 years agoSilence a warning from r201905
Ben Langmuir [Sat, 22 Feb 2014 00:44:02 +0000 (00:44 +0000)]
Silence a warning from r201905

Avoid a warning about reaching the end of a non-void function after a
covered switch.

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

10 years agoIRGen: Fix build breakage
David Majnemer [Sat, 22 Feb 2014 00:41:07 +0000 (00:41 +0000)]
IRGen: Fix build breakage

MSVC allows extra-qualification on member functions, it lets you repeat
the class name on the method.

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

10 years ago[MS-ABI] Fix MSRecordLayout to handel MultiDimensionalArrays
Warren Hunt [Sat, 22 Feb 2014 00:40:37 +0000 (00:40 +0000)]
[MS-ABI] Fix MSRecordLayout to handel MultiDimensionalArrays
A recent change caused multi-dimensional arrays not to be handled
correctly, this patch fixes that.  Also, it adds a lit test for
multi-dimensional arrays.

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

10 years agoFix two warnings introduced r201907
Warren Hunt [Sat, 22 Feb 2014 00:22:15 +0000 (00:22 +0000)]
Fix two warnings introduced r201907

Unused variable is removed.  Construction order is changed to match
declaration order.

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

10 years agoSema: Don't crash when trying to instantiate a local class with an invalid base specifier
David Majnemer [Sat, 22 Feb 2014 00:17:46 +0000 (00:17 +0000)]
Sema: Don't crash when trying to instantiate a local class with an invalid base specifier

It was previously thought that Sema::InstantiateClass could not fail
from within this point in instantiate.

However, it can happen if the class is invalid some way (i.e. invalid
base specifier).

This fixes PR18907.

Differential Revision: http://llvm-reviews.chandlerc.com/D2850

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

10 years ago[ObjC] Make attribute 'objc_protocol_requires_explicit_implementation' behave correct...
Ted Kremenek [Sat, 22 Feb 2014 00:02:03 +0000 (00:02 +0000)]
[ObjC] Make attribute 'objc_protocol_requires_explicit_implementation' behave correctly with default property synthesis.

In particular, if we see an @property within the @interface of a class
conforming to a protocol with this attribute, we treat that as
if the implementation were available, per the rules of default
property synthesis.

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

10 years agoComplete Rewrite of CGRecordLayoutBuilder
Warren Hunt [Fri, 21 Feb 2014 23:49:50 +0000 (23:49 +0000)]
Complete Rewrite of CGRecordLayoutBuilder

CGRecordLayoutBuilder was aging, complex, multi-pass, and shows signs of
existing before ASTRecordLayoutBuilder.  It redundantly performed many
layout operations that are now performed by ASTRecordLayoutBuilder and
asserted that the results were the same.  With the addition of support
for the MS-ABI, such as placement of vbptrs, vtordisps, different
bitfield layout and a variety of other features, CGRecordLayoutBuilder
was growing unwieldy in its redundancy.

This patch re-architects CGRecordLayoutBuilder to not perform any
redundant layout but rather, as directly as possible, lower an
ASTRecordLayout to an llvm::type.  The new architecture is significantly
smaller and simpler than the CGRecordLayoutBuilder and contains fewer
ABI-specific code paths.  It's also one pass.

The architecture of the new system is described in the comments. For the
most part, the new system simply takes all of the fields and bases from
an ASTRecordLayout, sorts them, inserts padding and dumps a record.
Bitfields, unions and primary virtual bases make this process a bit more
complicated.  See the inline comments.

In addition, this patch updates a few lit tests due to the fact that the
new system computes more accurate llvm types than CGRecordLayoutBuilder.
Each change is commented individually in the review.

Differential Revision: http://llvm-reviews.chandlerc.com/D2795

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

10 years agoAdd a VFSFromYAML class and a parser to create it
Ben Langmuir [Fri, 21 Feb 2014 23:39:37 +0000 (23:39 +0000)]
Add a VFSFromYAML class and a parser to create it

Provides a way to create a virtual file system using a YAML file that
supports mapping a file to a path on an 'external' file system. The
external file system will typically be the 'real' file system, but for
testing it can be changed.

A future patch will add a clang option to allow the user to specify such
a file and overlay it, but for now this code is only exercised by the
unit tests.

Differential Revision: http://llvm-reviews.chandlerc.com/D2835

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

10 years agoReapply 201734 but with appropriate gcc compatibility
Warren Hunt [Fri, 21 Feb 2014 23:08:53 +0000 (23:08 +0000)]
Reapply 201734 but with appropriate gcc compatibility
Because GCC incorrectly defines _mm_prefetch to take anything that casts
to void*, people have started using that behavior.  The previous patch
that made _mm_prefetch actually take a const char * broke compatibility
with existing code.  This update to the patch leaves the macro that
defines _mm_prefetch with the (void*) cast when _MSC_VER is not defined.

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