Skip to content
  1. Dec 15, 2009
  2. Dec 14, 2009
  3. Dec 11, 2009
  4. Dec 10, 2009
    • Eli Friedman's avatar
      Support unary type traits in a scalar context. Not that I've actually seen · d70bbfd7
      Eli Friedman authored
      this construct, but might as well for completeness.
      
      llvm-svn: 91071
      d70bbfd7
    • Eli Friedman's avatar
      Clean up enum constants so that they're finally sane. Fixes PR3173 and a · ee275c82
      Eli Friedman authored
      recently introduced crash.
      
      llvm-svn: 91070
      ee275c82
    • Anders Carlsson's avatar
      781161dc
    • Eli Friedman's avatar
      Test for r90950. · d011893e
      Eli Friedman authored
      llvm-svn: 91043
      d011893e
    • Anders Carlsson's avatar
      Handle emitting static variables that have reference type. · a72ddd46
      Anders Carlsson authored
      llvm-svn: 91027
      a72ddd46
    • Mike Stump's avatar
      Add terminate handler for copy constructors for thrown objects. WIP. · 25b20fc2
      Mike Stump authored
      llvm-svn: 90994
      25b20fc2
    • Douglas Gregor's avatar
      Reimplement reference initialization (C++ [dcl.init.ref]) using the · 3e1e5278
      Douglas Gregor authored
      new notion of an "initialization sequence", which encapsulates the
      computation of the initialization sequence along with diagnostic
      information and the capability to turn the computed sequence into an
      expression. At present, I've only switched one CheckReferenceInit
      callers over to this new mechanism; more will follow.
      
      Aside from (hopefully) being much more true to the standard, the
      diagnostics provided by this reference-initialization code are a bit
      better than before. Some examples:
      
      p5-var.cpp:54:12: error: non-const lvalue reference to type 'struct
      Derived'
            cannot bind to a value of unrelated type 'struct Base'
        Derived &dr2 = b; // expected-error{{non-const lvalue reference to
        ...
                 ^     ~
      p5-var.cpp:55:9: error: binding of reference to type 'struct Base' to
      a value of
            type 'struct Base const' drops qualifiers
        Base &br3 = bc; // expected-error{{drops qualifiers}}
              ^     ~~
      
      p5-var.cpp:57:15: error: ambiguous conversion from derived class
            'struct Diamond' to base class 'struct Base':
          struct Diamond -> struct Derived -> struct Base
          struct Diamond -> struct Derived2 -> struct Base
        Base &br5 = diamond; // expected-error{{ambiguous conversion from
            ...
                    ^~~~~~~
      p5-var.cpp:59:9: error: non-const lvalue reference to type 'long'
            cannot bind to
            a value of unrelated type 'int'
        long &lr = i; // expected-error{{non-const lvalue reference to type
            ...
              ^    ~
      
      p5-var.cpp:74:9: error: non-const lvalue reference to type 'struct
      Base' cannot
            bind to a temporary of type 'struct Base'
        Base &br1 = Base(); // expected-error{{non-const lvalue reference to
        ...
              ^     ~~~~~~
      
      p5-var.cpp:102:9: error: non-const reference cannot bind to bit-field
      'i'
        int & ir1 = (ib.i); // expected-error{{non-const reference cannot
        ...
              ^     ~~~~~~
      p5-var.cpp:98:7: note: bit-field is declared here
        int i : 17; // expected-note{{bit-field is declared here}}
            ^
      
      llvm-svn: 90992
      3e1e5278
  5. Dec 08, 2009
  6. Dec 07, 2009
  7. Dec 06, 2009
Loading