- May 01, 2011
-
-
Chris Lattner authored
problem reported on cfe-dev. llvm-svn: 130661
-
Abramo Bagnara authored
llvm-svn: 130660
-
Rafael Espindola authored
llvm-svn: 130659
-
Rafael Espindola authored
llvm-svn: 130658
-
NAKAMURA Takumi authored
Windows/DynamicLibrary.inc: Clean up ELM_Callback. We may check the decl instead of the versions of individual libraries. autoconf: Add checking ELM_Callback decl for mingw32 and mingw-w64. cmake/config-ix.cmake: Add checking ELM_Callback decl for win32. llvm-svn: 130657
-
Chandler Carruth authored
3 lines of code and improve a bunch of information in the libclang view of the code. Updates the two tests that exercise this with the new data, checking that each new source location actually points back to the declared template parameter. llvm-svn: 130656
-
Chandler Carruth authored
already present in the AST, and I added the ones that weren't. llvm-svn: 130655
-
Chandler Carruth authored
duplicating its logic. llvm-svn: 130654
-
Chandler Carruth authored
instead of 'int'. The Embarcadero spec says 'unsigned int', not 'int'. That's what 'size_t' is on Windows, but for Clang using a 'size_t' that can be larger than int seems more appropriate. llvm-svn: 130653
-
Chandler Carruth authored
llvm-svn: 130652
-
Chandler Carruth authored
functions already precluded dependent types from reaching them. Also change one of the callers to not error when a trait is applied to a dependent type. This is a perfectly reasonable pattern, and both Unary and Binary type traits already support dependent types (by populating the AST with a nonce value). Remove the actual diagnostic, since these aren't errors. llvm-svn: 130651
-
Argyrios Kyrtzidis authored
llvm-svn: 130650
-
Chandler Carruth authored
Completely remove a switch which selected between the same two types. llvm-svn: 130649
-
Chandler Carruth authored
a switch with any default case. This both warns when an enumerator is missing and asserts if a value sneaks through despite the warning. While in there fix a bunch of coding style issues with this code. llvm-svn: 130648
-
Chandler Carruth authored
adding an unreachable annotation. Remarkably this one was already enumarting every trait. llvm-svn: 130647
-
Chandler Carruth authored
enumerators. Also remove a default that led to llvm_unreachable to make another switch warn if any enumerators fail to be covered. llvm-svn: 130646
-
Chandler Carruth authored
over type traits. Add the missing trait from this switch that Clang's warning uncovered. llvm-svn: 130645
-
Chandler Carruth authored
case returning a value. Silences a GCC warning. llvm-svn: 130644
-
Chandler Carruth authored
As might be surmised from their names, these aren't type traits, they're expression traits. Amazingly enough, they're expression traits that we have, and fully implement. These "type" traits are even parsed from the same tokens as the expression traits. Luckily, the parser only tried the expression trait parsing for these tokens, so this was all just a pile of dead code. llvm-svn: 130643
-
Alexis Hunt authored
As far as I know, this implementation is complete but might be missing a few optimizations. Exceptions and virtual bases are handled correctly. Because I'm an optimist, the web page has appropriately been updated. If I'm wrong, feel free to downgrade its support categories. llvm-svn: 130642
-
Chandler Carruth authored
1) Moved the completeness checking routine above the evaluation routine so the reader sees that we do in fact check for complete types when necessary. 2) Remove the FIXME comment about not doing this. 3) Make the arguments to the evaluate function agree in order with those to the completeness checking function. 4) Completely specify the enumerators for the completeness checking function rather than relying on a default. 5) Remove a check for the Borland language to only require complete types in a few places. Borland's own documentation doesn't agree with this: some of the previously unspecified traits *do* require a complete type, some don't. 6) Correctly split the traits which do not require complete types from those that do, clarifying comments and citations to the standard or other documentation where relevant. llvm-svn: 130641
-
Chandler Carruth authored
likely a result of copy/paste. llvm-svn: 130640
-
Chandler Carruth authored
traits where possible. For the rest, group them and add some documentation regarding their origins. No functionality change intended. llvm-svn: 130639
-
Chandler Carruth authored
a single pattern for implementing each. llvm-svn: 130638
-
Rafael Espindola authored
-fno-dwarf2-cfi-asm. Implement the same behavior. llvm-svn: 130637
-
Francois Pichet authored
Add a triple to this test, otherwise it fails under MSVC because wchar_t is unsigned with the i686-pc-win32 triple. llvm-svn: 130636
-
Rafael Espindola authored
llvm-svn: 130635
-
Rafael Espindola authored
for all symbol differences and can drop the old EmitPCRelSymbolValue method. This also make getExprForFDESymbol on ELF equal to the one on MachO, and it can be made non-virtual. llvm-svn: 130634
-
John McCall authored
stop considering whether I can compress them. :) llvm-svn: 130633
-
John McCall authored
devirtualize Decl (because bits can't get laid out in base classes if the base is POD). llvm-svn: 130632
-
Oscar Fuentes authored
llvm-svn: 130631
-
Chandler Carruth authored
SubstTemplateTypeParmType to be 'getIdentifier' instead of 'getName' as it returns an identifier. This makes them more consistent with the NamedDecl interface. Also, switch back to using this interface to acquire the indentifier in TypePrinter.cpp. I missed this in r130628. llvm-svn: 130629
-
Chandler Carruth authored
accompanying fixes to make it work today. The core of this patch is to provide a link from a TemplateTypeParmType back to the TemplateTypeParmDecl node which declared it. This in turn provides much more precise information about the type, where it came from, and how it functions for AST consumers. To make the patch work almost a year after its first attempt, it needed serialization support, and it now retains the old getName() interface. Finally, it requires us to not attempt to instantiate the type in an unsupported friend decl -- specifically those coming from template friend decls but which refer to a specific type through a dependent name. A cleaner representation of the last item would be to build FriendTemplateDecl nodes for these, storing their template parameters etc, and to perform proper instantation of them like any other template declaration. They can still be flagged as unsupported for the purpose of access checking, etc. This passed an asserts-enabled bootstrap for me, and the reduced test case mentioned in the original review thread no longer causes issues, likely fixed at somewhere amidst the 24k revisions that have elapsed. llvm-svn: 130628
-
Rafael Espindola authored
less agressive about disabling cfi on linux :-( llvm-svn: 130627
-
Rafael Espindola authored
less agressive about disabling cfi on linux :-( llvm-svn: 130626
-
Jakob Stoklund Olesen authored
after folding ADD32ri to ADD32mi, so don't do that. This only happens when the greedy register allocator gets itself in trouble and spills %vreg9 here: 16L %vreg9<def> = MOVPC32r 0, %ESP<imp-use>; GR32:%vreg9 48L %vreg9<def> = ADD32ri %vreg9, <es:_GLOBAL_OFFSET_TABLE_>[TF=1], %EFLAGS<imp-def,dead>; GR32:%vreg9 That should never happen, the live range should be split instead. llvm-svn: 130625
-
Rafael Espindola authored
llvm-svn: 130624
-
Rafael Espindola authored
Currently the output should be almost identical to the one produced by CodeGen to make the transition easier. The only two differences I know of are: * Some files get an extra advance loc of size 0. This will be fixed when relaxations are enabled. * The optimization of declaring an EH symbol as an external variable is not implemented. This is a subset of adding the nounwind attribute, so we if really this at -O0 we should probably do it at the IL level. llvm-svn: 130623
-
- Apr 30, 2011
-
-
Benjamin Kramer authored
llvm-svn: 130622
-
Benjamin Kramer authored
llvm-svn: 130621
-