IDE 1.6.6 with int64_t

When I try to compile the sketch shown below under IDE 1.6.6, the compilation appears to hang. It compiles nicely under Widows 7, and prints the expected results. I'm using Ubuntu 14.04, 64-bit, on a Dell Latitude E4310.

The symptoms are: the compilation hangs, with the status bar a bit less than midway. Ubuntu's system monitor reports a process named "cc1plus," taking up 25% of the CPU capacity. That appears to be the entire capacity of one of the four cores on this laptop's i5 processor. Process "cc1plus" runs for a long time, maybe 12 minutes or so, even if I close the IDE. With the IDE closed, process "cc1plus" terminates on its own. I haven't seen it terminate with the IDE open. If I press the "Verify/Compile" button again, another instance of "cc1plus" starts.

It looks like "cc1plus" was executed from ./hardware/tools/avr/libexec/gcc/avr/4.8.1 under the IDE 1.6.6 directory.

It seems to be related to the use of the "int64_t" type. Changing it to "long long" doesn't change the symptoms. If I change the second line to "int32_t c1 ...," and leaving c2 at int64_t, it compiles quickly, but, of course, doesn't perform as expected.

Dowloading a fresh copy of the IDE from arduino.cc doesn't change anything.

Here's the sketch:

const int64_t c2 = -4292287654LL;
const int64_t c1 = 8580655236LL;

int x0, x1, x2;
int32_t y0, y1, y2;

int t;
const uint16_t sampleTime = 104;
const uint16_t halfCycleTime = 8333;

uint16_t ctr;

void setup() {
  Serial.begin(115200);
}

void loop() {
  update();
  Serial.print(x0);
  Serial.print(" ");
  Serial.print(y0);
  Serial.print(" ");
  Serial.print(t);
  Serial.print(" ");
  Serial.print(ctr);
  Serial.println();
  ctr++;
  if (ctr >= 10000) while(1){}
  t += sampleTime;

  if (t > halfCycleTime) {
    t -= halfCycleTime;
    x0 = 1023 - x0;
  }

}

void update() {
  y0 = x0  + (((c1 * y1) + (c2 * y2)) >> 32); 
  x2 = x1;
  x1 = x0;
  y2 = y1;
  y1 = y0;
}

The purpose of the sketch is to test a bandpass IIR filter with a sample rate of the default ADC sample rate - every 104 microseconds - and a narrow passband at 60 Hz. It simulates the input as a square wave with a period of 16.667 milliseconds, at ~9615.4 samples per second, and prints the first 10K input and output values.

Can other Linux users confirm this behavior?

Question is for Linux, not Windows. Answer have to be on Linux not Windows.

I have Linux (Debian) but I have only avr 8 bits boards so 1.0.5 IDE is totaly sufficient. With avr, new 1.6.x IDE brings cosmetics effects. I use version of repositoty to have more recent versions of GCC, avr-gcc, avrdude , then with Arduino USA IDE or Arduino Italy IDE.

When there will be a not bugged 1.6.x IDE I perhaps will try. But I always prefer repository version to keep a secure OS.

Compiles OK on MacOS...

Compiles without problems. Arduino 1.6.6 kubuntu 10.04.

Thanks for checking. Since no one else reports trouble, I tried compiling the sketch on a fresh install of Ubuntu 14.04, on an old Dell Inspiron with an SSD. The sketch compiled crisply, without unexpected behavior. Hmmph.

With a bit more patience, I find that the sketch eventually compiles, uploads, and runs as expected. I'm at a loss for the reason it takes so long, though - maybe something untoward persists from a previous installation; maybe something else in my system is unfriendly.