Upgrading introduces "error: expected constructor, destructor, or type conversion before ';' token

Hi,

While transferring my work to a newer Mac, I hit this weird problem that my main .ino file fails to compile. The IDE utters a bunch of errors, one for each function declaration, that look like this:

146:17: error: expected constructor, destructor, or type conversion before ';' token
  146 | void configOutputs(){

... one such error at the start of every function declaration in the file.

This sketch, comprised of 11 files, compiles just fine with Arduino 2.3.0 + Philtower's RP2040 Pico core version 3.7.2 + MacOS 11.7.10

But the new machine, running the latest versions of all those things, plus upgraded latest-greatest versions of many other support libraries, on the latest MacOS (14.4.1), gives me these cryptic new errors.

I've confirmed the file has the same MD5 checksum on both systems.

Possibly something in that big batch of upgrades went wrong. I'm just looking for a better way to track the problem down than tedious trial and error. I've read online that this message is usually due to some basic syntax error. Did the syntax of the Arduino dialect change between 2.3.0 and 2.3.2? Did the compiler get more finicky about anything? Has anybody else seen these errors crop up in unmodified, previously-working code after an upgrade?

Thanks,
-mykle-

it's not a dialect, it's standard C++ — so no.

the type of issue you see is either due to a syntax error in the file — but unlikely if it compiles fine with an older version of the IDE — or very often connected to a wrong #include for a file that has an issue. So that's where I'd look first, what gets included before the first error line.

For starters, full error output will be useful. For any real useful analysis, you'll have to post all files. You'll also have to provide information which exact libraries you're using (e.g. don't only state LiquidCrystal_I2C because there are multiple of them) and where we can find them.

Famous last words; don't upgrade if you don't have to, only upgrade if there are bug fixes. Your project was working, you've unknowingly made plenty of changes and it does not work any more.

As you still seem to have both versions of the code on different machines, I suggest that you compile on both machines and check the differences in versions used of both the core and the libraries; you'll have to enable (if you haven't done so yet) "verbose output during compilation" under file / preferences in the IDE.

If there is a difference in version of the used core, roll it back on the new machine. If there are differences in versions of libraries, roll them back on the new machine.

What is the supported procedure for transferring my existing installation of Arduino, with all its current library versions, from my old machine to my new machine with a different OS release?

Copy over the older libraries you depend on….

Okay, here's a simplified version of my sketch. I've reduced it to three lines:

void myFunction(){
  return;
}

Here's the error messages:

/private/var/folders/x1/z7dxwj8d681b4k0rkt96tjbc0000gn/T/.arduinoIDE-unsaved202441-24196-1hzx62n.j6re/sketch_may1a/sketch_may1a.ino:1:14: error: expected constructor, destructor, or type conversion before ';' token
    1 | void myFunction(){
      |              ^

exit status 1

Compilation error: expected constructor, destructor, or type conversion before ';' token

This sketch has no other includes, libraries or files.

I have been building it with the Arduino Pico core. As a test, I tried switching to the AVR core by setting my board to Arduino Pro. That gives me this error instead:

fork/exec /Users/myklehansen/Library/Arduino15/packages/arduino/tools/avr-gcc/7.3.0-atmel3.6.1-arduino7/bin/avr-g++: bad CPU type in executable

Compilation error: fork/exec /Users/myklehansen/Library/Arduino15/packages/arduino/tools/avr-gcc/7.3.0-atmel3.6.1-arduino7/bin/avr-g++: bad CPU type in executable

(Just checked: I did download the macos-arm64 installer for 2.3.2, not the Intel one.)

So yeah, I've just installed the latest versions of Arduino, MacOS and the Pico core on a newly-purchased M3 laptop, and this is the result. What else can I check?

I'm not familiar with the core that you're using but don't you need a setup() and a loop() function?

You either have a 32-bit version of the IDE installed on a 64-bit operating system or vice versa. You can do a search on the forum for the quoted part above; I'm not a Mac user.

Sorry that I can't be of more help.

this is not an arduino sketch. Do you have a .ino file with the setup() and loop() function or a main() somewhere and some #include ?

OK sure, here's another example. This is a complete Arduino sketch:

void setup() {
  // empty setup() is allowed
  return;
}

void loop() {
  // emopty loop() is also allowed
  return;
}

Once again, same error for every declaration:

/private/var/folders/x1/z7dxwj8d681b4k0rkt96tjbc0000gn/T/.arduinoIDE-unsaved202443-27972-mpnhsf.cunl/sketch_may3a/sketch_may3a.ino:2:9: error: expected constructor, destructor, or type conversion before ';' token
    2 | void setup() {
      |         ^
/private/var/folders/x1/z7dxwj8d681b4k0rkt96tjbc0000gn/T/.arduinoIDE-unsaved202443-27972-mpnhsf.cunl/sketch_may3a/sketch_may3a.ino:7:8: error: expected constructor, destructor, or type conversion before ';' token
    7 | void loop() {
      |        ^

exit status 1

Compilation error: expected constructor, destructor, or type conversion before ';' token

Actually it's an Intel binary, packaged in the Arm distribution.

That's not as wrong as it sounds, because MacOS can use the Rosetta translator to recompile and run i386 binaries on Apple Silicon. But Rosetta isn't installed by default, and Arduino manages to somehow circumvent the part of macOS that automatically notices when you try to execute an i386 binary and offers to install Rosetta for you.

I installed Rosetta manually and it solved that part. But now I get the same "expected constructor" errors whether I compile with the RP2040 core or with the stock Atmel core. So the problem is still a problem, no matter what core I use.

I get the same errors when I try to compile any of the example sketches.
I reinstalled version 2.3.2, that didn''t change anything.
I installed version 2.3.0, that didn't change anything either.

Any other suggestions?

Let's see the complete results of enabling "verbose output during compilation" and then compiling.

OK, this is with the RP2040 core:


FQBN: rp2040:rp2040:adafruit_feather_rfm
Using board 'adafruit_feather_rfm' from platform in folder: /Users/myklehansen/Library/Arduino15/packages/rp2040/hardware/rp2040/3.8.0
Using core 'rp2040' from platform in folder: /Users/myklehansen/Library/Arduino15/packages/rp2040/hardware/rp2040/3.8.0

Detecting libraries used...
/Users/myklehansen/Library/Arduino15/packages/rp2040/tools/pqt-gcc/2.2.0-d04e724/bin/arm-none-eabi-g++ -I /private/var/folders/x1/z7dxwj8d681b4k0rkt96tjbc0000gn/T/arduino/sketches/08944D6B036F386162E369112D51454A/core -c -Werror=return-type -Wno-psabi -DCFG_TUSB_MCU=OPT_MCU_RP2040 -DUSBD_PID=0x812D -DUSBD_VID=0x239a -DUSBD_MAX_POWER_MA=250 -DUSB_MANUFACTURER="Adafruit" -DUSB_PRODUCT="Feather RP2040 RFM" -DPICO_CYW43_ARCH_THREADSAFE_BACKGROUND=1 -DCYW43_LWIP=1 -DLWIP_IPV6=0 -DLWIP_IPV4=1 -DLWIP_IGMP=1 -DLWIP_CHECKSUM_CTRL_PER_NETIF=1 -DARDUINO_VARIANT="adafruit_feather_rfm" -DTARGET_RP2040 -DPICO_FLASH_SIZE_BYTES=8388608 -march=armv6-m -mcpu=cortex-m0plus -mthumb -ffunction-sections -fdata-sections -fno-exceptions -DARM_MATH_CM0_FAMILY -DARM_MATH_CM0_PLUS -iprefix/Users/myklehansen/Library/Arduino15/packages/rp2040/hardware/rp2040/3.8.0/ @/Users/myklehansen/Library/Arduino15/packages/rp2040/hardware/rp2040/3.8.0/lib/platform_inc.txt -I/Users/myklehansen/Library/Arduino15/packages/rp2040/hardware/rp2040/3.8.0/include -fno-rtti -std=gnu++17 -g -pipe -w -x c++ -E -CC -DF_CPU=133000000L -DARDUINO=10607 -DARDUINO_ADAFRUIT_FEATHER_RP2040_RFM -DBOARD_NAME="ADAFRUIT_FEATHER_RP2040_RFM" -DARDUINO_ARCH_RP2040 -Os -DWIFICC=CYW43_COUNTRY_WORLDWIDE -I/Users/myklehansen/Library/Arduino15/packages/rp2040/hardware/rp2040/3.8.0/cores/rp2040 -I/Users/myklehansen/Library/Arduino15/packages/rp2040/hardware/rp2040/3.8.0/variants/adafruit_feather_rfm /private/var/folders/x1/z7dxwj8d681b4k0rkt96tjbc0000gn/T/arduino/sketches/08944D6B036F386162E369112D51454A/sketch/sketch_may3a.ino.cpp -o /dev/null
Generating function prototypes...
/Users/myklehansen/Library/Arduino15/packages/rp2040/tools/pqt-gcc/2.2.0-d04e724/bin/arm-none-eabi-g++ -I /private/var/folders/x1/z7dxwj8d681b4k0rkt96tjbc0000gn/T/arduino/sketches/08944D6B036F386162E369112D51454A/core -c -Werror=return-type -Wno-psabi -DCFG_TUSB_MCU=OPT_MCU_RP2040 -DUSBD_PID=0x812D -DUSBD_VID=0x239a -DUSBD_MAX_POWER_MA=250 -DUSB_MANUFACTURER="Adafruit" -DUSB_PRODUCT="Feather RP2040 RFM" -DPICO_CYW43_ARCH_THREADSAFE_BACKGROUND=1 -DCYW43_LWIP=1 -DLWIP_IPV6=0 -DLWIP_IPV4=1 -DLWIP_IGMP=1 -DLWIP_CHECKSUM_CTRL_PER_NETIF=1 -DARDUINO_VARIANT="adafruit_feather_rfm" -DTARGET_RP2040 -DPICO_FLASH_SIZE_BYTES=8388608 -march=armv6-m -mcpu=cortex-m0plus -mthumb -ffunction-sections -fdata-sections -fno-exceptions -DARM_MATH_CM0_FAMILY -DARM_MATH_CM0_PLUS -iprefix/Users/myklehansen/Library/Arduino15/packages/rp2040/hardware/rp2040/3.8.0/ @/Users/myklehansen/Library/Arduino15/packages/rp2040/hardware/rp2040/3.8.0/lib/platform_inc.txt -I/Users/myklehansen/Library/Arduino15/packages/rp2040/hardware/rp2040/3.8.0/include -fno-rtti -std=gnu++17 -g -pipe -w -x c++ -E -CC -DF_CPU=133000000L -DARDUINO=10607 -DARDUINO_ADAFRUIT_FEATHER_RP2040_RFM -DBOARD_NAME="ADAFRUIT_FEATHER_RP2040_RFM" -DARDUINO_ARCH_RP2040 -Os -DWIFICC=CYW43_COUNTRY_WORLDWIDE -I/Users/myklehansen/Library/Arduino15/packages/rp2040/hardware/rp2040/3.8.0/cores/rp2040 -I/Users/myklehansen/Library/Arduino15/packages/rp2040/hardware/rp2040/3.8.0/variants/adafruit_feather_rfm /private/var/folders/x1/z7dxwj8d681b4k0rkt96tjbc0000gn/T/arduino/sketches/08944D6B036F386162E369112D51454A/sketch/sketch_may3a.ino.cpp -o /private/var/folders/x1/z7dxwj8d681b4k0rkt96tjbc0000gn/T/1738504158/sketch_merged.cpp
/Users/myklehansen/Library/Arduino15/packages/builtin/tools/ctags/5.8-arduino11/ctags -u --language-force=c++ -f - --c++-kinds=svpf --fields=KSTtzns --line-directives /private/var/folders/x1/z7dxwj8d681b4k0rkt96tjbc0000gn/T/1738504158/sketch_merged.cpp
ctags: Warning: Unsupported parameter 'T' for "fields" option
Compiling sketch...
/Users/myklehansen/Library/Arduino15/packages/rp2040/tools/pqt-python3/1.0.1-base-3a57aed/python3 -I /Users/myklehansen/Library/Arduino15/packages/rp2040/hardware/rp2040/3.8.0/tools/signing.py --mode header --publickey /private/var/folders/x1/z7dxwj8d681b4k0rkt96tjbc0000gn/T/.arduinoIDE-unsaved202443-28646-141yxdx.thyw/sketch_may3a/public.key --out /private/var/folders/x1/z7dxwj8d681b4k0rkt96tjbc0000gn/T/arduino/sketches/08944D6B036F386162E369112D51454A/core/Updater_Signing.h
/Users/myklehansen/Library/Arduino15/packages/rp2040/tools/pqt-gcc/2.2.0-d04e724/bin/arm-none-eabi-g++ -I /private/var/folders/x1/z7dxwj8d681b4k0rkt96tjbc0000gn/T/arduino/sketches/08944D6B036F386162E369112D51454A/core -c -Werror=return-type -Wno-psabi -DCFG_TUSB_MCU=OPT_MCU_RP2040 -DUSBD_PID=0x812D -DUSBD_VID=0x239a -DUSBD_MAX_POWER_MA=250 "-DUSB_MANUFACTURER=\"Adafruit\"" "-DUSB_PRODUCT=\"Feather RP2040 RFM\"" -DPICO_CYW43_ARCH_THREADSAFE_BACKGROUND=1 -DCYW43_LWIP=1 -DLWIP_IPV6=0 -DLWIP_IPV4=1 -DLWIP_IGMP=1 -DLWIP_CHECKSUM_CTRL_PER_NETIF=1 "-DARDUINO_VARIANT=\"adafruit_feather_rfm\"" -DTARGET_RP2040 -DPICO_FLASH_SIZE_BYTES=8388608 -march=armv6-m -mcpu=cortex-m0plus -mthumb -ffunction-sections -fdata-sections -fno-exceptions -DARM_MATH_CM0_FAMILY -DARM_MATH_CM0_PLUS -MMD -iprefix/Users/myklehansen/Library/Arduino15/packages/rp2040/hardware/rp2040/3.8.0/ @/Users/myklehansen/Library/Arduino15/packages/rp2040/hardware/rp2040/3.8.0/lib/platform_inc.txt -I/Users/myklehansen/Library/Arduino15/packages/rp2040/hardware/rp2040/3.8.0/include -fno-rtti -std=gnu++17 -g -pipe -DF_CPU=133000000L -DARDUINO=10607 -DARDUINO_ADAFRUIT_FEATHER_RP2040_RFM "-DBOARD_NAME=\"ADAFRUIT_FEATHER_RP2040_RFM\"" -DARDUINO_ARCH_RP2040 -Os -DWIFICC=CYW43_COUNTRY_WORLDWIDE -I/Users/myklehansen/Library/Arduino15/packages/rp2040/hardware/rp2040/3.8.0/cores/rp2040 -I/Users/myklehansen/Library/Arduino15/packages/rp2040/hardware/rp2040/3.8.0/variants/adafruit_feather_rfm /private/var/folders/x1/z7dxwj8d681b4k0rkt96tjbc0000gn/T/arduino/sketches/08944D6B036F386162E369112D51454A/sketch/sketch_may3a.ino.cpp -o /private/var/folders/x1/z7dxwj8d681b4k0rkt96tjbc0000gn/T/arduino/sketches/08944D6B036F386162E369112D51454A/sketch/sketch_may3a.ino.cpp.o
/private/var/folders/x1/z7dxwj8d681b4k0rkt96tjbc0000gn/T/.arduinoIDE-unsaved202443-28646-141yxdx.thyw/sketch_may3a/sketch_may3a.ino:1:9: error: expected constructor, destructor, or type conversion before ';' token
    1 | void setup() {
      |         ^
/private/var/folders/x1/z7dxwj8d681b4k0rkt96tjbc0000gn/T/.arduinoIDE-unsaved202443-28646-141yxdx.thyw/sketch_may3a/sketch_may3a.ino:6:8: error: expected constructor, destructor, or type conversion before ';' token
    6 | void loop() {
      |        ^

exit status 1

Compilation error: expected constructor, destructor, or type conversion before ';' token

... and this is with the AVR core:


FQBN: arduino:avr:pro
Using board 'pro' from platform in folder: /Users/myklehansen/Library/Arduino15/packages/arduino/hardware/avr/1.8.6
Using core 'arduino' from platform in folder: /Users/myklehansen/Library/Arduino15/packages/arduino/hardware/avr/1.8.6

Detecting libraries used...
/Users/myklehansen/Library/Arduino15/packages/arduino/tools/avr-gcc/7.3.0-atmel3.6.1-arduino7/bin/avr-g++ -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -flto -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10607 -DARDUINO_AVR_PRO -DARDUINO_ARCH_AVR -I/Users/myklehansen/Library/Arduino15/packages/arduino/hardware/avr/1.8.6/cores/arduino -I/Users/myklehansen/Library/Arduino15/packages/arduino/hardware/avr/1.8.6/variants/eightanaloginputs /private/var/folders/x1/z7dxwj8d681b4k0rkt96tjbc0000gn/T/arduino/sketches/08944D6B036F386162E369112D51454A/sketch/sketch_may3a.ino.cpp -o /dev/null
Generating function prototypes...
/private/var/folders/x1/z7dxwj8d681b4k0rkt96tjbc0000gn/T/.arduinoIDE-unsaved202443-28646-141yxdx.thyw/sketch_may3a/sketch_may3a.ino:1:9: error: expected constructor, destructor, or type conversion before ';' token
 void setup() {
         ^
/private/var/folders/x1/z7dxwj8d681b4k0rkt96tjbc0000gn/T/.arduinoIDE-unsaved202443-28646-141yxdx.thyw/sketch_may3a/sketch_may3a.ino:6:8: error: expected constructor, destructor, or type conversion before ';' token
 void loop() {
        ^
/Users/myklehansen/Library/Arduino15/packages/arduino/tools/avr-gcc/7.3.0-atmel3.6.1-arduino7/bin/avr-g++ -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -flto -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10607 -DARDUINO_AVR_PRO -DARDUINO_ARCH_AVR -I/Users/myklehansen/Library/Arduino15/packages/arduino/hardware/avr/1.8.6/cores/arduino -I/Users/myklehansen/Library/Arduino15/packages/arduino/hardware/avr/1.8.6/variants/eightanaloginputs /private/var/folders/x1/z7dxwj8d681b4k0rkt96tjbc0000gn/T/arduino/sketches/08944D6B036F386162E369112D51454A/sketch/sketch_may3a.ino.cpp -o /private/var/folders/x1/z7dxwj8d681b4k0rkt96tjbc0000gn/T/340118528/sketch_merged.cpp
/Users/myklehansen/Library/Arduino15/packages/builtin/tools/ctags/5.8-arduino11/ctags -u --language-force=c++ -f - --c++-kinds=svpf --fields=KSTtzns --line-directives /private/var/folders/x1/z7dxwj8d681b4k0rkt96tjbc0000gn/T/340118528/sketch_merged.cpp
ctags: Warning: Unsupported parameter 'T' for "fields" option
Compiling sketch...
/Users/myklehansen/Library/Arduino15/packages/arduino/tools/avr-gcc/7.3.0-atmel3.6.1-arduino7/bin/avr-g++ -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -MMD -flto -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10607 -DARDUINO_AVR_PRO -DARDUINO_ARCH_AVR -I/Users/myklehansen/Library/Arduino15/packages/arduino/hardware/avr/1.8.6/cores/arduino -I/Users/myklehansen/Library/Arduino15/packages/arduino/hardware/avr/1.8.6/variants/eightanaloginputs /private/var/folders/x1/z7dxwj8d681b4k0rkt96tjbc0000gn/T/arduino/sketches/08944D6B036F386162E369112D51454A/sketch/sketch_may3a.ino.cpp -o /private/var/folders/x1/z7dxwj8d681b4k0rkt96tjbc0000gn/T/arduino/sketches/08944D6B036F386162E369112D51454A/sketch/sketch_may3a.ino.cpp.o

exit status 1

Compilation error: expected constructor, destructor, or type conversion before ';' token

Would be interesting to check the file that is generated in the temp build directory and see what include it contains

I compiled another empty sketch -- the default empty sketch that Arduino offers when you open the program, setup() and loop() are empty but it should still compile.

I see three temp files mentioned in the error output.

/private/var/folders/x1/z7dxwj8d681b4k0rkt96tjbc0000gn/T/arduino/sketches/AD41F5C953CD169F89F45651C08D9D7F/sketch/sketch_may5a.ino.cpp is one, and it looks like this:

#include <Arduino.h>
#line 1 "/private/var/folders/x1/z7dxwj8d681b4k0rkt96tjbc0000gn/T/.arduinoIDE-unsaved202445-29898-sl9c8o.8v69/sketch_may5a/sketch_may5a.ino"
#line 1 "/private/var/folders/x1/z7dxwj8d681b4k0rkt96tjbc0000gn/T/.arduinoIDE-unsaved202445-29898-sl9c8o.8v69/sketch_may5a/sketch_may5a.ino"
 setup();
#line 6 "/private/var/folders/x1/z7dxwj8d681b4k0rkt96tjbc0000gn/T/.arduinoIDE-unsaved202445-29898-sl9c8o.8v69/sketch_may5a/sketch_may5a.ino"
 loop();
#line 1 "/private/var/folders/x1/z7dxwj8d681b4k0rkt96tjbc0000gn/T/.arduinoIDE-unsaved202445-29898-sl9c8o.8v69/sketch_may5a/sketch_may5a.ino"
void setup() {
  // put your setup code here, to run once:

}

void loop() {
  // put your main code here, to run repeatedly:

}

I have no idea what those #line directives are supposed to mean. But below all that it's just the content of my sketch, no surprise there.

Another temp file (pointed to by that file) is: /private/var/folders/x1/z7dxwj8d681b4k0rkt96tjbc0000gn/T/.arduinoIDE-unsaved202445-29898-sl9c8o.8v69/sketch_may5a/sketch_may5a.ino .
That's just my un-saved sketch with nothing added.

And then the errors also mention /private/var/folders/x1/z7dxwj8d681b4k0rkt96tjbc0000gn/T/4042469372/sketch_merged.cpp,
but that file is not present. I guess the IDE deletes it after the compile fails.

The errors are the same as before:


FQBN: arduino:avr:pro
Using board 'pro' from platform in folder: /Users/myklehansen/Library/Arduino15/packages/arduino/hardware/avr/1.8.6
Using core 'arduino' from platform in folder: /Users/myklehansen/Library/Arduino15/packages/arduino/hardware/avr/1.8.6

Detecting libraries used...
/Users/myklehansen/Library/Arduino15/packages/arduino/tools/avr-gcc/7.3.0-atmel3.6.1-arduino7/bin/avr-g++ -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -flto -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10607 -DARDUINO_AVR_PRO -DARDUINO_ARCH_AVR -I/Users/myklehansen/Library/Arduino15/packages/arduino/hardware/avr/1.8.6/cores/arduino -I/Users/myklehansen/Library/Arduino15/packages/arduino/hardware/avr/1.8.6/variants/eightanaloginputs /private/var/folders/x1/z7dxwj8d681b4k0rkt96tjbc0000gn/T/arduino/sketches/AD41F5C953CD169F89F45651C08D9D7F/sketch/sketch_may5a.ino.cpp -o /dev/null
Generating function prototypes...
/private/var/folders/x1/z7dxwj8d681b4k0rkt96tjbc0000gn/T/.arduinoIDE-unsaved202445-29898-sl9c8o.8v69/sketch_may5a/sketch_may5a.ino:1:9: error: expected constructor, destructor, or type conversion before ';' token
 void setup() {
         ^
/private/var/folders/x1/z7dxwj8d681b4k0rkt96tjbc0000gn/T/.arduinoIDE-unsaved202445-29898-sl9c8o.8v69/sketch_may5a/sketch_may5a.ino:6:8: error: expected constructor, destructor, or type conversion before ';' token
 void loop() {
        ^
/Users/myklehansen/Library/Arduino15/packages/arduino/tools/avr-gcc/7.3.0-atmel3.6.1-arduino7/bin/avr-g++ -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -flto -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10607 -DARDUINO_AVR_PRO -DARDUINO_ARCH_AVR -I/Users/myklehansen/Library/Arduino15/packages/arduino/hardware/avr/1.8.6/cores/arduino -I/Users/myklehansen/Library/Arduino15/packages/arduino/hardware/avr/1.8.6/variants/eightanaloginputs /private/var/folders/x1/z7dxwj8d681b4k0rkt96tjbc0000gn/T/arduino/sketches/AD41F5C953CD169F89F45651C08D9D7F/sketch/sketch_may5a.ino.cpp -o /private/var/folders/x1/z7dxwj8d681b4k0rkt96tjbc0000gn/T/4042469372/sketch_merged.cpp
/Users/myklehansen/Library/Arduino15/packages/builtin/tools/ctags/5.8-arduino11/ctags -u --language-force=c++ -f - --c++-kinds=svpf --fields=KSTtzns --line-directives /private/var/folders/x1/z7dxwj8d681b4k0rkt96tjbc0000gn/T/4042469372/sketch_merged.cpp
ctags: Warning: Unsupported parameter 'T' for "fields" option
Compiling sketch...
/Users/myklehansen/Library/Arduino15/packages/arduino/tools/avr-gcc/7.3.0-atmel3.6.1-arduino7/bin/avr-g++ -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -MMD -flto -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10607 -DARDUINO_AVR_PRO -DARDUINO_ARCH_AVR -I/Users/myklehansen/Library/Arduino15/packages/arduino/hardware/avr/1.8.6/cores/arduino -I/Users/myklehansen/Library/Arduino15/packages/arduino/hardware/avr/1.8.6/variants/eightanaloginputs /private/var/folders/x1/z7dxwj8d681b4k0rkt96tjbc0000gn/T/arduino/sketches/AD41F5C953CD169F89F45651C08D9D7F/sketch/sketch_may5a.ino.cpp -o /private/var/folders/x1/z7dxwj8d681b4k0rkt96tjbc0000gn/T/arduino/sketches/AD41F5C953CD169F89F45651C08D9D7F/sketch/sketch_may5a.ino.cpp.o

exit status 1

Compilation error: expected constructor, destructor, or type conversion before ';' token