This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug c++/34811] New: Classes without attributes declared as const need initializer.


The appeded code does not compile without errors:
(Verified on avr-gcc (gcc version 4.2.2)

$ avr-gcc -Wall c++_trial_1.cpp
c++_trial_1.cpp:29: error: uninitialized const 'sM'

Using Visual Studio 2005 Express the same code compiles on the highest
warninglevel without warnings or errors.

#include <stdio.h>

unsigned char PORTB;
unsigned char PORTC;

class port_b
{
protected:
        inline void setPB0( void ) { PORTB |= (unsigned char) (1<<0);};
        inline void resetPB0( void ) { PORTB &= (unsigned char) ~(1<<0);};
};

class port_c
{
protected:
        inline void setPC0( void ) { PORTC |= (unsigned char) (1<<0);};
        inline void resetPC0( void ) { PORTC &= (unsigned char) ~(1<<0);};
} ;

class signalManager
        : protected port_b,
          protected port_c
{
public:
        inline void alarmLedOn( void ) {port_b::resetPB0();};
        inline void alarmLedOff( void ) {port_b::setPB0();};
} const sM ;

int main( void )
{
        printf("Port B %d\n", PORTB);
        ((signalManager&)sM).alarmLedOff();
        printf("Port B %d\n", PORTB);
        ((signalManager&) sM).alarmLedOn();
        printf("Port B %d\n", PORTB);

        return 0;
}


-- 
           Summary: Classes without attributes declared as const need
                    initializer.
           Product: gcc
           Version: 4.2.2
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c++
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: olof dot tangrot at telia dot com


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34811


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]